Для переопределенного оператора верно:

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

Выберите наиболее правильный вариант объявления оператора присваивания в классе A:

A& operator=(const A& a);
const A& operator=(const A& a);
A& operator=(A a);
A& operator=(const A a);

Отметьте истинное высказывание для данного примера:

Item::Item() : taken(false), invNumber(0)
{ }



метод класса Item выделяет память под атрибуты класса taken и invNumber
происходит инициализация атрибутов класса taken и invNumber
происходит инициализация методов класса taken и invNumber

Конструктор класса - это метод, который вызывается при создании объекта для ...(перечислить )

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

Сопоставьте:

1. Конструктор –
2. Деструктор –
3. Дружественная функция –
4. Переопределение операций -
A - вызывается автоматически, как только объект класса уничтожается.
B – имеет доступ к защищенным и собственным компонентам класса, не являясь его компонентом.
C – возможность распространения действия стандартных операций на операнды, для которых эти операции первоначально в языке не предполагались.
D – используется для инициализации объектов класса.



1-D, 2-A, 3-B, 4-C
1-B, 2-A, 3-D, 4-C
1-C, 2-B, 3-A, 4-D

Какие из следующих утверждений о копирующем конструкторе правильны?

вызывается командой copy, имеющейся у каждого объекта
вызывается, когда функция класса принимает объект этого же класса в качестве аргумента
новый объект независим от первоначального

Вызовет ли данный код ошибку компиляции?

class Rectangle
{
public:
int a,b;

int sum();
int square();
~rect();
};



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

Будет ли вызываться конструктор, если в программе встретится следующaя конструкция:

monstr Super(200, 300), Vasia(50), Z;
monstr X = monstr(1000);
monstr Y = 500;



нет, не будет
да, будет
данная конструкция содержит синтаксическую ошибку
данный код вызовет ошибку компиляции

Какая из перечисленных функций не может быть конструктором?

String();
void String()
String(String &s)
const String(int a)

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

void operator delete(int x, void* addr)
то при вызове
A* ptr; . . . delete(10, ptr);



ошибка компиляции
освободится массив из 10 элементов типа a
аргумент 10 будет передан в оператор delete

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

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