Deleting object with private destructor
问题 How is that possible that it is allowed to delete object with private destructor in the following code? I've reduced real program to the following sample, but it still compiles and works. class SomeClass; int main(int argc, char *argv[]) { SomeClass* boo = 0; // in real program it will be valid pointer delete boo; // how it can work? return -1; } class SomeClass { private: ~SomeClass() {}; // ! private destructor ! }; 回答1: You are trying to delete object of incomplete class type. C++ Standard