Почему иногда функции присваивается какое-то значение, например:
class Test
{
public:
Test() = default;
Test(Test &test) = delete;
virtual void Free(void* ptr) = 0;
};
Что конкретно происходит после присваивания? И стоит ли так делать?
Спецификатор default указывется вместо тела функции и означает реализацию по умолчанию и может применяться только к специальным функциям-членам:
конструктор по-умолчанию;
конструктор копий;
конструктор перемещения;
оператор присваивания;
оператор перемещения;
деструктор.
Спецификатор delete помечают те методы, работать с которыми нельзя.
`virtual void Free(void* ptr) = 0;`
это присваивание означает, что виртуальная функция чистая(определяется только в производных классах
Сборка персонального компьютера от Artline: умный выбор для современных пользователей