от
Рассмотрим следующий код:
class Base {
public:
#ifdef __VIRTUAL__
   virtual ~Base() {}
#else
   ~Base() {}
#endif
};

class Derived : public Base {
public:
    ~Derived() {}
private:
    static void operator delete(void*) = delete;
};

int main() {
    Derived d;
}
Он будет успешно скомпилирован с cmd
g   

но не с cmd 

g   

Это означает, что если я использую функцию виртуального деструктора, я не удалить operator delete
. Почему это произошло, почему виртуальный деструктор необходим глобальный
operator delete
даже если создается на стеке.

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
...