Этот сайт использует cookies. Продолжение работы с сайтом означает, что Вы согласны!
Спецификаторы default и delete
Если внутри класса мы создаем конструктор с параметрами, то конструктор по умолчанию автоматически не создается. Если конструктор по умолчанию нужен и реализация по умолчанию устраивает, то можно после закрывающей круглой скобки указать оператор =
после которого добавлен спецификатор default
:
<Название класса>() = default;
В этом случае компилятор автоматически создаст тело конструктора с реализацией по умолчанию. Спецификатор default
допускается указывать не только для конструктора по умолчанию, но и для других специальных методов, генерируемых компилятором по умолчанию: для конструктора копирования и конструктора перемещения, деструктора, оператора присваивания и оператора перемещения:
class C {
public:
C() = default; // Конструктор по умолчанию
C(int x) { x_ = x; }
C(const C&) = default; // Конструктор копирования
~C() = default; // Деструктор
int getX() { return x_; }
private:
int x_ = 0;
};
Спецификатор delete
предназначен для пометки методов, которые не должны вызываться:
class C {
public:
C(int) = delete;
C(double x) { x_ = x; }
double getX() { return x_; }
private:
double x_;
};
В этом случае попытка вызвать конструктор с параметром типа int
приведет к ошибке:
C obj(10.2); // OK
// C obj2(10); // Ошибка
Реквизиты
ЮMoney (Yandex-деньги): 410011140483022
ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов