單例模式的類就是在乙個程序中只建立乙個全域性的例項來使用。可以封裝乙個巨集來方便地進行函式呼叫。
單例模式的建構函式和析構函式都為類的private函式。對外提供乙個static方法來獲取類的例項。
這樣類的例項就無法被其他的類所建立,只能通過對外的static介面來建立該類的例項。
namespace diagservice
return m_instance;
}void init();
void deinit();
private:
cdtcinte***ce();
virtual ~cdtcinte***ce();
static cdtcinte***ce* m_instance;
bool b_init;
};
#define cdtcinte***ceins cdtcinte***ce::getinstance()
}
using namespace diagservice;
cdtcinte***ce* cdtcinte***ce::m_instance = null;
cdtcinte***ceins->init();
注意:不要在單例的析構函式裡面delete單例的物件。單例的構造和析構函式都要定義為private許可權。
class diagdispatcher
;
#include #include #include "singleton.h"
using namespace std;
diagdispatcher *diagdispatcher::mdiagdispatcher = null;
diagdispatcher::diagdispatcher()
diagdispatcher::~diagdispatcher()
}void diagdispatcher::createinstance()
}int main()
C 單例模式使用
一直以來都沒有細細的看過設計模式,今天借助部落格來記錄一下學習過程。單例模式,是這些設計模式中最常用的一種模式,之前我們可能使用過全域性或者靜態變數的方式,現在可以考慮單例模式了。單例模式主要是在一些工具類使用較多,因為工具類基本不用儲存太多的跟自身有關的資料,這種情況下,如果每次都new乙個物件,...
C 單例模式
include using namespace std 單例類的c 實現 class singleton 構造方法實現 singleton singleton void singleton setvar int var main int main int argc,char argv return ...
C 單例模式
實現方式一 include template typename t class singleton boost noncopyable static void init private static pthread once t ponce statict value template typena...