具體例子如下:
/**
* 懶漢式單例模式
*/#include using namespace std;
/* 定義singleton類,用來表示單例模式 */
class singleton
;/* 實現singleton類中的方法和靜態資料成員 */
singleton *singleton::getinstance()
singleton::singleton()
singleton::singleton(const singleton &other)
singleton &singleton::operator=(const singleton &other)
singleton *singleton::instance = new singleton();
/* 程式入口 */
int main()
注意有記憶體洩漏。
具體實現如下:
/**
* 餓漢式單例模式
*/#include #include using namespace std;
/* 定義singleton類,用來表示單例模式 */
class singleton
; static destroysingleton destroyinstance;
};/* 實現singleton類中的方法和靜態資料成員 */
singleton *singleton::getinstance()
pthread_mutex_unlock(&mutex); /* 解鎖 */
} return instance;
}singleton::singleton()
singleton::singleton(const singleton &other)
singleton &singleton::operator=(const singleton &other)
singleton *singleton::instance = null;
pthread_mutex_t singleton::mutex = pthread_mutex_initializer;
singleton::destroysingleton singleton::destroyinstance;
/* 實現內部類destroysingleton的析構函式 */
singleton::destroysingleton::~destroysingleton()
}/* 程式入口 */
int main()
注意多執行緒的同步問題,加鎖與解鎖。
C 單例模式的多種簡單實現
這裡我就不做過多的解釋了,畢竟關於singleton的資料實在是太多太多了。點選這裡 1.簡單的思路就是,建立物件單例的動作轉移到另外的行為上面,利用乙個行為去建立物件自身,如下 public class singleton private static singleton singleton nu...
單例設計模式簡單實現
所謂單例設計模式簡單說就是無論程式如何執行,採用單例設計模式的類 singleton類 永遠只會有乙個例項化物件產生。具體實現步驟如下 1 將採用單例設計模式的類的構造方法私有化 採用private修飾 2 在其內部產生該類的例項化物件,並將其封裝成private static型別。3 定義乙個靜態...
C 實現單例模式
給所需要進行單例的類ctest的建構函式宣告為private或者protected 防止在類外隨意生成ctest的物件 然後宣告乙個靜態成員變數 instance 乙個靜態成員函式getinsance staticctest getinstance staticctest instance 靜態成員...