单例模式的析构函数出错
#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;
}