实现支持:静态成员变量的初始化是在程序开始后、进入主函数之前就由主线程以单线程方式完成的,所以不必担心多线程安全问题
优势:在性能需求较高时,使用这种模式,避免频繁的锁争夺
具体实现
.h文件
class SingleTest
{
public:
static SingleTest *GetSingleTest();
private:
SingleTest();
virtual ~SingleTest();
//其他的默认成员函数省略
private:
static SingleTest * const s_pSingleTest;
};
.cpp文件
SingleTest * const SingleTest::s_pSingleTest=new SingleTest;
SingleTest *SingleTest::GetSingleTest(){
return s_pSingleTest;
}
SingleTest::SingleTest(){
}
SingleTest::~SingleTest() {
}
欢迎大家讨论!