我确实对使用delete p
. 在大多数情况下,如果我们会调用某些东西,我们会在析构函数中调用 delete,int *p = new int (10);
但是根据下面的代码片段(delete p 的原始代码),它已经调用了析构函数,然后调用运算符 delete,那么为什么我们应该在析构函数中调用 delete p .
原始代码:
delete a;
if (a != NULL) {
a->~A();
operator delete(a);
}
我们将 delete 称为内部析构函数的代码片段
class B
{
int *a;
public:
B()
{
a=new int(90);
}
~B()
{
cout<<"B's destructor";
delete a;
}
void dial()
{
cout<<"dial the tone";
}
}