1.单例类拥有一个私有构造函数,确保用户无法通过new实例出对象;
2.包含一个静态私有成员变量This和静态共有方法Instance();
Singleton.h代码
#includeclass Singleton { public: static Singleton* getInstance(); void test(); private: static Singleton* This; private: Singleton(); ~Singleton(); };
Singleton.cpp代码
#include "Singleton.h"
//Singleton类静态变量This指针初始化,这里可以不用NULL,改为new Singleton,则在项目启动的时候就完成新对象的构建
Singleton* Singleton::This = NULL;
Singleton* Singleton::getInstance()
{
if (!This)
{
//在类内部,可以使用new构建新对象
This = new Singleton();
}
return This;
}
void Singleton::test()
{
std::cout << "void Singleton::test()" << std::endl;
}
Singleton::Singleton()
{
std::cout << "Singleton::Singleton()" << std::endl;
}
Singleton::~Singleton()
{
std::cout << "Singleton::~Singleton()" << std::endl;
}
测试代码
#include#include "Singleton.h" int main() { Singleton::getInstance()->test(); Singleton::getInstance()->test(); Singleton::getInstance()->test(); Singleton::getInstance()->test(); Singleton::getInstance()->test(); return 0; }
输出结果: Singleton::Singleton() void Singleton::test() void Singleton::test() void Singleton::test() void Singleton::test() void Singleton::test()



