Инициализация функций [дубликат]

97
25 февраля 2021, 00:00
На этот вопрос уже дан ответ здесь:
C++ добавление (= default/delete) в конце функции (1 ответ)
Закрыт 1 год назад.

Почему иногда функции присваивается какое-то значение, например:

class Test
{
public:
Test() = default;
Test(Test &test) = delete;
virtual void Free(void* ptr) = 0;
};

Что конкретно происходит после присваивания? И стоит ли так делать?

Answer 1

Спецификатор default указывется вместо тела функции и означает реализацию по умолчанию и может применяться только к специальным функциям-членам: конструктор по-умолчанию; конструктор копий; конструктор перемещения; оператор присваивания; оператор перемещения; деструктор.

Спецификатор delete помечают те методы, работать с которыми нельзя.

`virtual void Free(void* ptr) = 0;` 

это присваивание означает, что виртуальная функция чистая(определяется только в производных классах

READ ALSO
Использование --x++ допустимо?

Использование --x++ допустимо?

Верно ли утверждать, что (--x)++ представляет собой некоторый эквивалент (x-1)? Т е

106
Перевести SQL-запрос в LINQ

Перевести SQL-запрос в LINQ

Есть два DataGridViewВ одном главные записи, во втором детали по нему

94
Потокобезопасный перебор коллекции

Потокобезопасный перебор коллекции

Подскажите, как можно реализовать коллекцию, реализующую INotifyCollectionChanged, и которую можно было бы потокобезопасно перебирать? Наследоваться...

93