C++单例模式实现方式
sample.h
class Sample {
private:
Sample(); //构造函数私有化,防止用户创建类实例
public:
~Sample ();
public:
static Sample * getSingleInstace(); //静态方法,获取单实例
private:
static Sample* instance; //静态变量,单实例
};
Sample.cpp
Sample* Sample::instance = NULL; //私有静态成员变量在使用前必须初始化,
// 否则产生以下LNK2001错误
/*LNK2001 无法解析的外部符号 "private: static class Sample * Sample::instance" (?instance@Sample@@0PEAV1@EA)*/
Sample* Sample::getSingleInstace() {
if (instance == NULL) { //只生成一个实例
instance = new Sample();
}
return instance;
}
Sample::Sample() {
}
Sample::~Sample() {
}