void operator delete(void*) {}
void operator delete(void* p, void*) {}
Это пользовательские функции освобождения. Функция освобождения вызывается через выражение delete
. Э.Г.
YourClass* p = new YourClass(); // Allocates memory & calls constructor
// ... whatever, then
delete p; // Calls destructor & deallocates memory
Для вашего класса выражение delete
в последней строке выше сначала вызовет деструктор, а затем вызовет функцию освобождения одного аргумента void*
, которую определяет класс, первую из двух ваших функций, если то освобождение доступно.
Однако, возможно, функция освобождения объявлена как private
или protected
, чтобы сделать ее недоступной. В первом случае выражение delete
вне собственного кода класса не будет компилироваться (недоступная функция освобождения). И если так, то в этом весь смысл - или, не удивляйтесь, если в этом нет никакого смысла.
Кстати, посмотрите на этот урок . Это, по-видимому, наименее плохое бесплатное введение в C ++ в сети. Электронная книга Брюса Экеля «Мышление в C ++» также бесплатна, но в ней есть некоторые ошибки и дезинформация (хотя раньше это было наоборот, хотя учебник на cplusplus.com был очень плохим, один раз).
Приветствия и hth.,