class MyClass
{
public:
MyClass()
{
std::cout << "MyClass Constructor" << std::endl;
}
~MyClass()
{
std::cout << "MyClass Destructor" << std::endl;
}
};
int main()
{
MyClass* p = new MyClass();
}
是什么 主叫P->〜MyClass的()之间的差值; 或 删除p;Differnace和 “P->〜MyClass的()”
两者都调用析构函数。
'delete'也会将分配的内存返回给操作系统。我不认为这样明确地调用析构函数是合法的,无论如何 –
@ Code-Apprentice明确地调用析构函数是合法的,但在这种情况下,你不能显式地调用析构函数,因为你需要'删除'内存,'delete'调用析构函数,析构函数会两次调用析构函数,这是非法的。 – Justin
@ Code-Apprentice如果它在任何地方都不合法,语言不会允许你编写它 –