【发布时间】:2013-02-21 02:22:48
【问题描述】:
我创建了一个单例类,我想知道我的析构函数是否会自动为名为@987654321@ 的静态变量释放内存。
下面的代码会自动释放内存吗?
class SingletonClass
{
SingletonClass()
{
}
~SingletonClass()
{
delete this; // or should I say... delete instance;
}
public:
static SingletonClass* instance;
SingletonClass* getInstance()
{
if (instance != NULL)
return instance;
instance = new SingletonClass();
return instance;
}
};
PS: 是否可以只使instance 成为常规的单例变量而不是指针?这会是更好的代码实践吗?
【问题讨论】:
-
你认为这个析构函数到底什么时候会被调用?
-
@us2012 我认为当变量超出范围和/或应用程序(.exe)结束时会调用它。
-
@VaughnCato 抱歉打错字了,应该是指针
-
@VaughnCato 是的,对不起,另一个错字
标签: c++ memory-management singleton raii