读书人

单例模式的析构函数失误

发布时间: 2013-11-08 17:52:14 作者: rapoo

单例模式的析构函数出错
#include <iostream>
using namespace std;

//静态变量版本 懒汉模式
class singletonA
{
//类中默认生成的 构造函数,copy构造函数,赋值设置为私有变量
private:
singletonA()
{
num=10 ;
}

singletonA(const singletonA& single);
singletonA operator=(const singletonA& single);
~singletonA();
int num ;
public:
// 获得类唯一经验变量的接口,在第一次使用的时候创建
static singletonA* GetSingletonA()
{
static singletonA SingleClass;
return &SingleClass ;
}

void printNum()
{
cout << num << "\n" << endl ;
}
};

错误提示:[Error] F:\C++TEST\singleton\singletonA.h:22: undefined reference to `singletonA::~singletonA()' C++
[解决办法]

#include <iostream>
using namespace std;

//静态变量版本 懒汉模式
class singletonA
{
//类中默认生成的 构造函数,copy构造函数,赋值设置为私有变量
private:
singletonA()
{
num=10 ;
}

singletonA(const singletonA& single);
singletonA operator=(const singletonA& single);
~singletonA() {}
int num ;

public:
// 获得类唯一经验变量的接口,在第一次使用的时候创建
static singletonA* GetSingletonA()
{
static singletonA SingleClass;
return &SingleClass ;
}

void printNum()
{
cout << num << "\n" << endl ;
}
};

int main()
{
singletonA* singleton = singletonA::GetSingletonA();

return 0;
}

[解决办法]
~singletonA();
这只是声明,没有函数主体吧?

~singletonA()
{}

读书人网 >C++

热点推荐