使用場景:
● 要求生成唯一序列號的環境;
● 在整個專案中需要乙個共享訪問點或共享資料,例如乙個web頁面上的計數器,可以不用把每次重新整理都記錄到資料庫中,使用單例模式保持計數器的值,並確保是執行緒安全的;
● 建立乙個物件需要消耗的資源過多,如要訪問io和資料庫等資源;
● 需要定義大量的靜態常量和靜態方法(如工具類)的環境,可以採用單例模式(當然,也可以直接宣告為static的方式)。
#pragma once
#include "stdafx.h"
class csingletonex
static csingletonex *psingleton;
char szdevice[128];
public:
~csingletonex()
static csingletonex* getinstance()
static void release()
}void setdevice(const char *pstrdevice)
void printhellodevice()
};csingletonex* csingletonex::psingleton = new csingletonex;
以上單例模式實現**是執行緒安全的。
以下這種單例模式實現**是非執行緒安全的。需加入鎖,才能保證是執行緒安全的。
#pragma once
class csingleton
static csingleton *psingleton;
public:
~csingleton()
static csingleton* getinstance()
else
}void printhellouser(char *pstrname)
};csingleton* csingleton::psingleton = null;
C 實現單例模式
給所需要進行單例的類ctest的建構函式宣告為private或者protected 防止在類外隨意生成ctest的物件 然後宣告乙個靜態成員變數 instance 乙個靜態成員函式getinsance staticctest getinstance staticctest instance 靜態成員...
C 實現單例模式
ifndef singleton h define singleton h include include using namespace std class locker inline locker inline void lock inline void unlock private pthre...
C 實現單例模式
class singleton 私有建構函式 singleton const singleton 拷貝建構函式,只宣告不定義,這要當使用者或友元想要拷貝構造該類的已存在例項時會出錯。singleton operator const singleton 賦值運算子,只宣告不定義,作用同上 public...