單例模式看起來也蠻簡單的,就是在系統中只允許產生這個類的乙個例項,既然這麼簡單,就直接貼**了。更詳細的內容及說明可以參考原作者部落格:cbf4life.cnblogs.com。
3.1.解釋
main(),大臣
cemperor,需要單例的類
說明:很多大臣拜見的皇帝,只有乙個。體現在物件導向方面,cemperor定義乙個靜態指標,和乙個靜態函式,私有化建構函式、析構函式、建構函式複製、過載賦值語句。
注意:執行緒安全,採用互斥體的方式實現。
看**:
#pragma once
#include
using std::cout;
using std::endl;
using std::string;
class cemperor
~cgarbo()
releasemutex(m_pmutex);
}if (null != m_pmutex)}};
static cgarbo m_garbo;
};#include "stdafx.h"
#include "emperor.h"
#include
using std::cout;
using std::endl;
using std::string;
cemperor* cemperor::m_pemperor = null;
handle cemperor::m_pmutex = createmutex(null, false, null);
cemperor::cgarbo cemperor::m_garbo;
cemperor::cemperor(void)
cemperor::~cemperor(void)
void cemperor::emperorinfo(void)
;sprintf_s(msgbuffer, 50, "皇ê帝?某3某3某3... ...(%s).", m_emperortag.c_str());
單例模式比較簡單,但在專案中使用的時候,需要明確只呼叫cemperor的getinstance函式來獲取例項。在c#裡有更簡單的方法,那就是宣告唯讀的靜態變數,比c++簡單多了。
但c++更吸引人們去研究,這就是軟體研發的樂趣吧。
設計模式 之 三
一 單例模式 飽漢模式public class singlepattern2 return sp 餓漢模式public class singlepattern1 兩種模式差別在有沒有在類被載入時就給建立好物件,餓漢 即等不及了要吃東西所以要提前建立好物件,飽漢 正好相反 二 模板方法 給出演算法的骨...
設計模式之三 工廠模式
如果要擴充套件的話,則要修改源 這樣如果以後產生的phone型別很多,那麼就要一直修改,維護成本高 如果萬一你哪個型別寫錯了怎麼辦 所以出現了工廠模式。工廠模式簡單來說就是乙個工廠對應乙個產品。比如說iphonefactory產生iphone系列的手機,xiaomifactory產生xiaomi系列...
設計模式之三 Singleton
設計模式之三 singleton 問題 假設我們電腦只有乙個印表機,我們用乙個類來管理印表機資源,如果像一般的類一樣,使用者可以建立多個類的例項,那麼勢必會造成系統資源的大量浪費,為了達到節約資源的目的,我們需要尋找乙個新的方法 解決方案 我們在類內建立乙個靜態的本類指標,初始化的時候為其賦值,以後...