Если имеется класс с двумя атрибутами

class Complex {
double real;
double img;
. . .
};
какой у него должен быть деструктор?



виртуальный деструктор
деструктор, вызывающий деструкторы атрибутов
деструктор не обязателен

В каком порядке происходит вызов деструкторов при уничтожении объекта производного класса?

вызывается деструктор производного класса, затем деструкторы атрибутов производного класса и, потом, деструктор базового класса
вызывается деструктор базового класса, затем деструкторы атрибутов базового класса и, потом, деструктор производного класса
вызывается деструктор базового класса, затем деструктор производного класса и, потом, деструкторы атрибутов базового класса

В каких строках ошибка?

new long[];
new long[][2][4];
new long[3][][4];



во всех строках ошибка – неизвестен размер
в строках нет ошибки
в первой строке ошибка – неизвестен размер
в последней строке ошибка – неправильный синтаксис
во всех строках ошибка – неправильный синтаксис

Если в производном классе переопределена операция new то:

все объекты класса и все производные от этого класса будут использовать эту операцию
производные от этого класса могут использовать глобальную операцию применив операцию ::new
базовый класс также будет использовать переопределенную операцию

Если в классе операция new переопределена как

void* operator new(size_t size, int a);
то какой вызов этой операции правильный?



Foo* ptr = new (20) Foo;
Foo* ptr = new Foo(20);
Foo* ptr = new [20] Foo;

В какой строчке данного кода сработает заданный в нем копирующий конструктор?

1 monstr::monstr(const monstr &М){
2 if (M.name){
3 name = new char [strlen(M.name) + 1]:
4 strcpy(name, M.name);}
5 else name = 0;
6 health = M.health; ammo = M.ammo; skin = M.skin;
7 }

8 monstr Vasia (blue);
10 monstr Super = Vasia;
11 monstr *m = new monstr ("Orc");
12 monstr Green = *m;



в шестой
в пятой
в четвертой
в двенадцатой

При использовании копирующего конструктора:

вновь созданный объект имеет те же атрибуты что и исходный
вновь созданный объект зависит от копируемого
вновь созданный объект не зависит от копируемого

Отметьте правильный вариант освобождения всей памяти, выделенной для трехмерного массива для следующей программы

long (*lp)[2][4];
lp = new long[3][2][4];



delete [] lp;
delete lp;
delete [][] lp;
delete [][][] lp;

RSS-материал RSS-материал

Не нашли ответ на свой вопрос? Задайте его на нашем форуме.