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;
两者都调用析构函数。
使用new
运算符将:
- 分配内存块。
- 调用类的构造函数,
this
指向该内存。
delete
只是撤消new
所做的事情,因此默认情况下它将:
- 调用析构函数,
this
指向其内存块。 - 释放内存块。
当然,您可以重载这些运算符以使其行为不同。