Выберите правильные утверждения о конструкторе класса:
1) Конструктор имеет то же имя, что и класс.
2) Конструктор объявляется в точности так же, как и обычный метод класса.
3) Конструктор не возвращает значения.
4) Имя конструктора начинается с символа ~.
5) Конструктор может иметь любое имя.
Выберите правильные утверждения о конструкторе класса:
1) Конструктор имеет то же имя, что и класс.
2) Конструктор объявляется в точности так же, как и обычный метод класса.
3) Конструктор не возвращает значения.
4) Имя конструктора начинается с символа ~.
5) Конструктор может иметь любое имя.
В какой строке выполнено неправильное преобразование?
#include <stdio.h>
class A
{
virtual void print() = 0;
};
class B: public A
{
void print()
{
printf("B");
}
};
class C: public A
{
void print()
{
printf("C");
}
};
int main()
{
A *a1 = new B(); //1
A *a2 = new C(); //2
B *b1 = dynamic_cast<B *>(a1); //3
B *b2 = dynamic_cast<B *>(a2); //4
return 0;
}
В какой строке выполнено неправильное преобразование?
#include <stdio.h>
class A
{
virtual void print() = 0;
};
class B: public A
{
void print()
{
printf("B");
}
};
class C: public A
{
void print()
{
printf("C");
}
};
int main()
{
A *a1 = new B(); //1
A *a2 = new C(); //2
B *b1 = dynamic_cast<B *>(a1); //3
B *b2 = dynamic_cast<B *>(a2); //4
return 0;
}
В каких строках содержатся ошибки (компиляции, времени выполнения, undefined behavior), если они есть?
char a[] = "123"; //1
char b[5] = "123"; //2
const char *c = "123"; //3
a[3] = '3'; //4
b[4] = '3'; //5
c[2] = '5'; //6
В каких строках содержатся ошибки (компиляции, времени выполнения, undefined behavior), если они есть?
char a[] = "123"; //1
char b[5] = "123"; //2
const char *c = "123"; //3
a[3] = '3'; //4
b[4] = '3'; //5
c[2] = '5'; //6
Что будет выведено на экран?
#include <iostream>
int main(int argc, char* argv[])
{
const int a = 1;
int* pa = const_cast<int*>(&a);
*pa = 2;
std::cout << a << *pa;
return 0;
}
Что будет выведено на экран?
#include <iostream>
int main(int argc, char* argv[])
{
const int a = 1;
int* pa = const_cast<int*>(&a);
*pa = 2;
std::cout << a << *pa;
return 0;
}
Пусть имеется система в которой int занимает 4 байта, а char занимает 1 байт. Будет ли отличаться (i2 - i1) от (c2 - c1) в фрагменте кода ниже.
int a[10];
int* i1 = &a[4];
int* i2 = &a[6];
char* c1 = (char*)i1;
char* c2 = (char*)i2;
Пусть имеется система в которой int занимает 4 байта, а char занимает 1 байт. Будет ли отличаться (i2 - i1) от (c2 - c1) в фрагменте кода ниже.
int a[10];
int* i1 = &a[4];
int* i2 = &a[6];
char* c1 = (char*)i1;
char* c2 = (char*)i2;
// Example program (С++11)
#include <iostream>
class A{
const int val = 1;
friend void f(A& a) { std::cout << a.val; }
};
int main()
{
A a;
f(a);
}
При компиляции и запуске данная программа:
1) выведет на экран цифру 1
2) программа успешно компилируется но при запуске ничего не напечатает
3) выдаст ошибку компиляции
4) выдаст ошибку в режиме выполнения
// Example program (С++11)
#include <iostream>
class A{
const int val = 1;
friend void f(A& a) { std::cout << a.val; }
};
int main()
{
A a;
f(a);
}
При компиляции и запуске данная программа:
1) выведет на экран цифру 1
2) программа успешно компилируется но при запуске ничего не напечатает
3) выдаст ошибку компиляции
4) выдаст ошибку в режиме выполнения
Что будет выведенно на экранн в результате работы данной программы?
#include <iostream>
template <class T>
void f(T)
{
std::cout<<"base ";
}
template <>
void f<int>(int)
{
std::cout<<"int ";
}
template <>
void f<long>(long)
{
std::cout<<"long ";
}
int main()
{
short int i = 1;
long l = 2;
f(i);
f(l);
f(i * i);
f(l * l);
}
Что будет выведенно на экранн в результате работы данной программы?
#include <iostream>
template <class T>
void f(T)
{
std::cout<<"base ";
}
template <>
void f<int>(int)
{
std::cout<<"int ";
}
template <>
void f<long>(long)
{
std::cout<<"long ";
}
int main()
{
short int i = 1;
long l = 2;
f(i);
f(l);
f(i * i);
f(l * l);
}
Какой модификатор доступа следует указать для члена класса, если вы хотите, чтобы член класса был доступен только самому классу и классам, наследуемым от него?
Какой модификатор доступа следует указать для члена класса, если вы хотите, чтобы член класса был доступен только самому классу и классам, наследуемым от него?
Существует ли в C++ разница между объявлением функции c пустыми скобками - func(), и объявлением с использованием ключевого слова void - func(void)?
Существует ли в C++ разница между объявлением функции c пустыми скобками - func(), и объявлением с использованием ключевого слова void - func(void)?
Чему равно значение переменной res?
#define F(x) (2*x*x)
int main() {
int a = 1, b = 2;
int res = F(a + b);
return 0;
}
Чему равно значение переменной res?
#define F(x) (2*x*x)
int main() {
int a = 1, b = 2;
int res = F(a + b);
return 0;
}
Что будет выведено на экран?
#include <iostream>
int main() {
int x = 5;
0[&x] = x + x;
std::cout << x;
return 0;
}
Что будет выведено на экран?
#include <iostream>
int main() {
int x = 5;
0[&x] = x + x;
std::cout << x;
return 0;
}
Что обозначается ключевым словом catch?
Что обозначается ключевым словом catch?
Может ли структура иметь чисто виртуальную функцию?
Может ли структура иметь чисто виртуальную функцию?
Что будет выведено при выполнении следующего фрагмента кода?
int x;
while(x < 100) {
cout << x << " ";
x++;
}
Что будет выведено при выполнении следующего фрагмента кода?
int x;
while(x < 100) {
cout << x << " ";
x++;
}
Отметьте синтаксически корректные вызовы функции:
int f(const char*, int, ...);
1)
int n = f("ABC",1,"nm",1.1);
2)
int n = f("ABC");
3)
int n = f("ABC",1,2,3);
4)
f("ABC",1);
Отметьте синтаксически корректные вызовы функции:
int f(const char*, int, ...);
1)
int n = f("ABC",1,"nm",1.1);
2)
int n = f("ABC");
3)
int n = f("ABC",1,2,3);
4)
f("ABC",1);
Объявляет ли данная строка массив ссылок, если мы правильно их проинициализируем?
int& ref[10];
Объявляет ли данная строка массив ссылок, если мы правильно их проинициализируем?
int& ref[10];
В какой строке данного фрагмента кода допущена ошибка?
int a = 3;
int i; // 2
for (i = 0; i < 3; i++) { // 3
a++; // 4
}
Варианты ответов:
1) Во второй: переменная i должна быть проинициализирована
2) В третьей: переменная i должна быть объявлена в конструкции for
3) В четвертой: результат выражения a++ игнорируется
4) В этом коде нет ошибок
В какой строке данного фрагмента кода допущена ошибка?
int a = 3;
int i; // 2
for (i = 0; i < 3; i++) { // 3
a++; // 4
}
Варианты ответов:
1) Во второй: переменная i должна быть проинициализирована
2) В третьей: переменная i должна быть объявлена в конструкции for
3) В четвертой: результат выражения a++ игнорируется
4) В этом коде нет ошибок
Скомпилируется ли следующий код?
int foo();
char foo();
Скомпилируется ли следующий код?
int foo();
char foo();
Чем классы отличаются от структур?
1) Наличием функции-членов
2) Модификатором доступа к полям и функциям-членам, предполагаемым по умолчанию
3) Наличием полей разных типов
4) Наличием имени
Чем классы отличаются от структур?
1) Наличием функции-членов
2) Модификатором доступа к полям и функциям-членам, предполагаемым по умолчанию
3) Наличием полей разных типов
4) Наличием имени
Что выведет на экран следующая программа?
#include <iostream>
enum Num {zero, one, two = 37, three, four};
int main(void) {
Num number = three;
int intNum = static_cast<int>(number);
std::cout << intNum;
return 0;
}
Что выведет на экран следующая программа?
#include <iostream>
enum Num {zero, one, two = 37, three, four};
int main(void) {
Num number = three;
int intNum = static_cast<int>(number);
std::cout << intNum;
return 0;
}