單例模式 C 實現

2021-08-28 19:09:29 字數 977 閱讀 9475

使用場景:

● 要求生成唯一序列號的環境;

● 在整個專案中需要乙個共享訪問點或共享資料,例如乙個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...