C 實現單例模式

2021-06-16 09:20:16 字數 1152 閱讀 1727

**:

#ifndef _singleton_h_

#define _singleton_h_

#include 

#include 

using

namespace

std;  

class

locker    

inline

~locker()    

inline

void

lock()    

inline

void

unlock()    

private

:    

pthread_mutex_t mutex;    

};    

class

singleton  

}  };  

static

garbo gb;

//在程式結束時,系統會呼叫它的析構函式

};  

#endif //~_singleton_h_

#include "singleton.h"

#include 

using

namespace

std;  

singleton* singleton::m_pinstance = 0;  

singleton::singleton()  

singleton* singleton::instance()  

llock.unlock();    

}    

return

m_pinstance;    

}  

#include "singleton.h"

#include 

using

namespace

std;  

intmain(

intargc,

char

* argv)  

將建構函式宣告為private,防止被例項化。用乙個靜態成員變數和靜態函式實現唯一的物件構造。在靜態函式中new了空間,所以用內嵌的成員物件的析構函式來釋放記憶體。為了多執行緒安全,在建物件之前先加鎖,完成後拆鎖。

多執行緒需要的標頭檔案和庫檔案見附件

C 實現單例模式

給所需要進行單例的類ctest的建構函式宣告為private或者protected 防止在類外隨意生成ctest的物件 然後宣告乙個靜態成員變數 instance 乙個靜態成員函式getinsance staticctest getinstance staticctest instance 靜態成員...

C 實現單例模式

class singleton 私有建構函式 singleton const singleton 拷貝建構函式,只宣告不定義,這要當使用者或友元想要拷貝構造該類的已存在例項時會出錯。singleton operator const singleton 賦值運算子,只宣告不定義,作用同上 public...

C 實現單例模式

關於單例模式的相關資料和博文非常多,原因不僅僅在於它作為設計模式的重要性,也在於各大公司筆試面試題出現概率之高讓人乍舌。正因為如此,通過這篇博文的書寫,加深自己對單例模式的理解,以不變應萬變。單例模式是一種常用的軟體設計模式。在它的核心結構中只包含乙個被稱為單例類的特殊類。通過單例模式可以保證系統中...