我有一个关于类的析构函数实现的问题。我了解正确的方法是使用 ~ 运算符,但请查看以下代码:
class foo
{
private:
int* abc;
public:
foo()
{
abc = new int(2);
}
~foo()
{
delete abc;
}
void func()
{
delete abc;
}
}
现在让我们说 main 函数定义如下:
int main(int argc, char** argv)
{
foo a;
a.func();
}
在 main 函数调用 func() 时,它的工作方式与析构函数完全相同吗?在任何类似的设置中,析构函数和这个函数有什么区别?