【发布时间】:2008-12-17 09:08:54
【问题描述】:
样本
void func(void* data)
{
CResource* resource = (CResource*)data;
delete resource; // ~CResource never called.
resource = NULL;
}
请帮我解决这个问题。
【问题讨论】:
-
必须调用析构函数。请提供 CResource 的定义。
-
可以像 data==0 一样简单。但我们需要代码来决定会发生什么:)
-
该问题显示对基本原理缺乏了解,但尝试询问更高级的原理。
-
... 无论如何,它的做法很糟糕——代码不够完整,任何人都无法给出答案,因此需要水晶球猜测。
-
不,不是,只有一个原因不会在这样的函数中调用析构函数,我在回答中指出了这个原因。我同意,问题(标题)可能应该改变。
标签: c++