单列模式(懒汉)测试代码
生活随笔
收集整理的這篇文章主要介紹了
单列模式(懒汉)测试代码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include <iostream>
class CSingleton /* 懶漢式 */
{ ?
public:
? ? static CSingleton *GetInstance()
? ? { ? ? ??
? ? ? ? if(m_pInstance == NULL) //判斷是否第一次調用
? ? ? ? {
? ? ? ? m_pInstance = new CSingleton();
} ? ? ? ?
? ? ? ? return m_pInstance;
? ? }
? ? void RelaseInstance()
? ? {
? ? ? ? delete this;
? ? }
? ? void HelloWorld(void)
? ? {
? ? std::cout<<"Hello world!"<<std::endl;
}
private:
? ? CSingleton() //構造函數是私有的
? ? {
? ?
? ? }
? ? CSingleton(const CSingleton& that)//拷貝構造函數也應是私有的
? ? {
? ? ?
? ? }
? ? ~CSingleton()
? ? {
? ? ? ? m_pInstance = NULL;
? ? }
static CSingleton *m_pInstance; ? ?
};
/*
1.一定要放在類定義后面初始化,放到前面就會報錯。
2.一定要對這個靜態類成員變量初始化,否則編譯時報引用了未定義成員的錯誤。?
*/
CSingleton* CSingleton::m_pInstance = 0;?
int main(int argc, char** argv)?
{
CSingleton *m_pInstance1 = CSingleton::GetInstance();
m_pInstance1->HelloWorld();
return 0;
} 《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀
class CSingleton /* 懶漢式 */
{ ?
public:
? ? static CSingleton *GetInstance()
? ? { ? ? ??
? ? ? ? if(m_pInstance == NULL) //判斷是否第一次調用
? ? ? ? {
? ? ? ? m_pInstance = new CSingleton();
} ? ? ? ?
? ? ? ? return m_pInstance;
? ? }
? ? void RelaseInstance()
? ? {
? ? ? ? delete this;
? ? }
? ? void HelloWorld(void)
? ? {
? ? std::cout<<"Hello world!"<<std::endl;
}
private:
? ? CSingleton() //構造函數是私有的
? ? {
? ?
? ? }
? ? CSingleton(const CSingleton& that)//拷貝構造函數也應是私有的
? ? {
? ? ?
? ? }
? ? ~CSingleton()
? ? {
? ? ? ? m_pInstance = NULL;
? ? }
static CSingleton *m_pInstance; ? ?
};
/*
1.一定要放在類定義后面初始化,放到前面就會報錯。
2.一定要對這個靜態類成員變量初始化,否則編譯時報引用了未定義成員的錯誤。?
*/
CSingleton* CSingleton::m_pInstance = 0;?
int main(int argc, char** argv)?
{
CSingleton *m_pInstance1 = CSingleton::GetInstance();
m_pInstance1->HelloWorld();
return 0;
} 《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀
總結
以上是生活随笔為你收集整理的单列模式(懒汉)测试代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: preempt_count详解
- 下一篇: C++ 类中的static成员的初始化