【发布时间】:2011-04-01 19:14:33
【问题描述】:
如何创建可以在其他类中使用的单例实例?
例如:
//Singleton_Class.h
#ifndef Singleton_Class
#define Singleton_Class
class Singleton
{
private:
static Singleton _instance;
Singleton() {}
~Singleton() {}
Singleton(const Singleton &);
Singleton & operator=(const Singleton &);
public:
static Singleton &getInstance(){return _instance;}
};
Singleton Singleton::_instance;
#endif
//Main.cpp
#include "Singleton_Class.h"
int main()
{
Singleton &s = Singleton::getInstance(); //Use the instance
}
//ClassA.cpp
#include "Singleton_Class.h"
class A
{
public:
A(){};
};
尝试包含 A 类 (LNK2005) 的单个类标头时出现链接错误:“private: static class Singleton Singleton::_instance” (?_instance@Singleton@@0V1@A) 已在 Singleton 类中定义.obj
【问题讨论】: