请问Singleton类的析构函数有关问题
请教Singleton类的析构函数问题
为什么析构函数没有调用?
代码如下,请教大家了。。。
class Singleton
{
public:
static Singleton * Instance();
int add(int a, int b) {return a+b;}
protected:
Singleton();
~Singleton();
private:
static Singleton * _singleton;
};
Singleton * Singleton::_singleton = NULL;
Singleton::Singleton()
{
cout << "create singleton" << endl;
}
Singleton::~Singleton()
{
delete _singleton;
cout << "destroy singleton" << endl;
}
Singleton * Singleton::Instance()
{
if (NULL == _singleton)
_singleton = new Singleton;
return _singleton;
}
int main()
{
cout << Singleton::Instance()->add(2, 3) << endl;
return 0;
}
------解决方案--------------------
为什么析构函数没有调用?
代码如下,请教大家了。。。
class Singleton
{
public:
static Singleton * Instance();
int add(int a, int b) {return a+b;}
protected:
Singleton();
~Singleton();
private:
static Singleton * _singleton;
};
Singleton * Singleton::_singleton = NULL;
Singleton::Singleton()
{
cout << "create singleton" << endl;
}
Singleton::~Singleton()
{
delete _singleton;
cout << "destroy singleton" << endl;
}
Singleton * Singleton::Instance()
{
if (NULL == _singleton)
_singleton = new Singleton;
return _singleton;
}
int main()
{
cout << Singleton::Instance()->add(2, 3) << endl;
return 0;
}
------解决方案--------------------
- C/C++ code
_singleton = new Singleton;