單例模式C 表示

2021-06-16 04:34:08 字數 783 閱讀 4646

下面是個單例模式的例子。

1. 類中有乙個static的類指標

2. 有乙個static的類成員函式,返回該static指標。 static的成員函式只能訪問static的成員變數。

3. 該static指標的初始化,是單獨列出來的,且在進入main函式前執行

4. 還有乙個奇怪的地方,singleton的建構函式是private的,為什麼可以new singleton()?

#include

using namespace std;

//singleton c++

class singleton

;singleton::singleton()

void singleton::setvar(int var)

//main

int main(int argc, char* argv)

{cout << "starting main" << endl;

singleton *ton1 = singleton::getinstance();

singleton *ton2 = singleton::getinstance();

cout<<"ton1 var = "cout<<"ton2 var = "singleton constructor

starting main

ton1 var = 20

ton2 var = 150

可以看出,建構函式在進入main之前執行了。

改變了ton1->var,ton2->var變了。說明是乙個物件。

C 單例模式

include using namespace std 單例類的c 實現 class singleton 構造方法實現 singleton singleton void singleton setvar int var main int main int argc,char argv return ...

C 單例模式

實現方式一 include template typename t class singleton boost noncopyable static void init private static pthread once t ponce statict value template typena...

C 單例模式

效率有點低,但是還算安全的單例模式,靜態成員實現方式 class singleton public static singleton getinstance singleton singleton getinstance unlock return m instance 內部靜態例項的懶漢模式,c ...