【发布时间】:2012-04-15 11:54:51
【问题描述】:
class finder
{
public:
finder();
~finder();
}
int _tmain(int argc, _TCHAR* argv[])
{
finder* pfind = new finder(L"test");
finder find(L"test2");
system("PAUSE");
return 0;
}
我知道find的析构函数会在程序退出后被调用,而pfind的析构函数不会被调用。我的问题是为什么?我应该添加
delete _pfind;
在返回 0 之前?
【问题讨论】:
-
你不应该添加
delete,你应该删除new。 -
你的代码充满了错误;如果您要发布 sn-ps,您应该尽量使它们尽可能正确。
-
@avakar 了解
new和delete并没有错。当然,如果您不喜欢它们,您可以找到避免它们的方法,但是实际使用它们并适应它们并从错误中吸取教训并决定您是否喜欢它们并没有错。
标签: c++ pointers destructor delete-operator