青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

C++之竹

無論是太陽下,還是風(fēng)雨中,都要成長(zhǎng)!

常用鏈接

統(tǒng)計(jì)

最新評(píng)論

Singleton模式——C++應(yīng)用(二)

看了通過靜態(tài)成員實(shí)現(xiàn)的惰性單件,雖說構(gòu)件簡(jiǎn)單且線程安全,但在被全局變量(包括靜態(tài)全局變量)的構(gòu)造或析構(gòu)調(diào)用時(shí),會(huì)存在著那樣的缺陷畢竟還是很讓人不爽。那么,是否存在保持上面的優(yōu)點(diǎn)同時(shí)剔除了上面的缺陷的C++單件呢?

 

我們知道,定義于函數(shù)內(nèi)部的靜態(tài)局部變量,有著

  • 定義的實(shí)時(shí)性,即只在函數(shù)第一次被調(diào)用時(shí)才被定義
  • 線程安全性
  • 生命期直到程序結(jié)束

的特點(diǎn)。那么,通過這個(gè)局部靜態(tài)變量來創(chuàng)建的單件又會(huì)是什么樣呢?貼上我的Demo代碼,這就來看看吧。

  1// Singleton demo_1: Singleton instance is a local static varible of class.
  2
  3#include <Windows.h>
  4#include <iostream>
  5
  6class A 
  7{
  8public:
  9    static A& GetInstance();
 10
 11private:
 12    A() : m_nStat1(-1), m_nStat2(-1{
 13        m_nStat1 = 0;
 14        std::cout << "Construct A" << std::endl;
 15        m_nStat2 = 0;
 16    }

 17    A(const A&);
 18
 19public:
 20    ~A() {
 21        m_nStat1 = 0;
 22        std::cout << "Destruct A" << std::endl;
 23        m_nStat2 = 0;
 24    }

 25
 26    void Do() {
 27        ++m_nStat1;
 28        ++m_nStat2;
 29        std::cout << "Called Do() by object of A. [" 
 30                  << m_nStat1 << "" 
 31                  << m_nStat2 << "]" 
 32                  << std::endl;
 33    }

 34
 35private:
 36    int m_nStat1;
 37    int m_nStat2;
 38}
;
 39
 40class B
 41{
 42public:
 43    B(int nID) : m_nID(nID) {
 44        std::cout << "Construct B: " << m_nID << std::endl;
 45        A::GetInstance().Do();
 46    }

 47    ~B() {
 48        std::cout << "Destruct B: " << m_nID << std::endl;
 49        A::GetInstance().Do();
 50    }

 51
 52private:
 53    int m_nID;
 54}
;
 55
 56class C
 57{
 58public:
 59    static C& GetInstance();
 60
 61private:
 62    C() : m_nStat(-1{
 63        std::cout << "Construct C" << std::endl;
 64        m_nStat = 0;
 65    }

 66    C(const C&);
 67
 68public:
 69    ~C() {
 70        std::cout << "Destruct C" << std::endl;
 71        m_nStat = 0;
 72    }

 73
 74    void Do() {
 75        ++m_nStat;
 76        std::cout << "Called Do() by object of C. [" 
 77            << m_nStat << "]" 
 78            << std::endl;
 79    }

 80
 81private:
 82    int m_nStat;
 83}
;
 84
 85static B gs_B0(0);
 86B g_B1(1);
 87
 88A& A::GetInstance()
 89{
 90    static A s_instance;
 91    
 92    return s_instance;
 93}

 94
 95C& C::GetInstance()
 96{
 97    static C s_instance;
 98
 99    return s_instance;
100}

101
102static B gs_B2(2);
103B g_B3(3);
104
105int main(int argc, char * argv[])
106{
107    std::cout << "Enter main" << std::endl;
108    A::GetInstance().Do();
109    C::GetInstance().Do();
110
111    system("pause");
112    return 0;
113}

114

 接下來,自然就是執(zhí)行結(jié)果:

喲吼~,這不正是自己想要的結(jié)果么,Perfect!!

構(gòu)建簡(jiǎn)單,創(chuàng)建具有實(shí)時(shí)性(在且只在第一次用到時(shí)創(chuàng)建),線程安全,可以被全局變量的構(gòu)造和析構(gòu)正常調(diào)用,就是它了,極力推薦!O(∩_∩)O~

 

posted on 2012-03-12 02:08 青碧竹 閱讀(250) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 設(shè)計(jì)模式

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美一区二区大片| 欧美影视一区| 午夜在线不卡| 欧美自拍偷拍午夜视频| 久久国产天堂福利天堂| 老司机精品久久| 免费观看成人www动漫视频| 噜噜噜91成人网| 亚洲国产成人高清精品| 久久综合99re88久久爱| 欧美激情一区二区| 亚洲伦理网站| 午夜免费在线观看精品视频| 欧美中文字幕视频| 欧美国产精品久久| 亚洲国产精品t66y| 亚洲大片av| 夜夜狂射影院欧美极品| 亚洲免费视频观看| 久久综合国产精品台湾中文娱乐网| 欧美 日韩 国产精品免费观看| 亚洲国产精品美女| 午夜国产不卡在线观看视频| 久久久久久自在自线| 欧美国产日本| 国产一区二区三区久久悠悠色av| 亚洲黄色片网站| 亚洲免费视频网站| 欧美激情精品久久久久久蜜臀| 日韩午夜av电影| 欧美成人综合| 亚洲女女做受ⅹxx高潮| 欧美 日韩 国产 一区| 国产精品区一区二区三区| 亚洲福利视频二区| 亚洲欧洲99久久| 亚洲国产高清高潮精品美女| 国产精品99久久久久久宅男 | 亚洲精品视频在线观看免费| 午夜一级在线看亚洲| 欧美黑人在线观看| 国产精品成人av性教育| 在线免费精品视频| 午夜精品99久久免费| 亚洲国产小视频| 久久久久国色av免费观看性色| 欧美色精品天天在线观看视频 | 香蕉成人久久| 欧美日韩亚洲视频| 亚洲国产精品www| 久久精品国产第一区二区三区最新章节| 亚洲国产欧美一区二区三区丁香婷| 性欧美video另类hd性玩具| 欧美日韩中字| 99在线|亚洲一区二区| 欧美激情欧美狂野欧美精品 | 91久久国产综合久久蜜月精品| 午夜精品久久久久久| 欧美日韩综合在线免费观看| 亚洲人成网站精品片在线观看| 狂野欧美激情性xxxx欧美| 午夜久久久久| 国产精品日韩久久久| 亚洲性感激情| 在线一区欧美| 国产精品一二一区| 欧美影片第一页| 亚洲欧美一区二区精品久久久| 亚洲一区二区在线免费观看视频 | 亚洲在线视频网站| 欧美视频精品一区| 亚洲一区3d动漫同人无遮挡| 99精品国产在热久久| 午夜免费在线观看精品视频| 免费日韩av片| 在线精品国产欧美| 欧美大学生性色视频| 欧美成人高清视频| aa级大片欧美| 亚洲一区二区精品视频| 国产欧亚日韩视频| 久久视频免费观看| 欧美成人蜜桃| 亚洲女女做受ⅹxx高潮| 亚洲欧美一区二区原创| 红桃视频成人| 亚洲精品欧美| 国产日产欧产精品推荐色| 欧美aa在线视频| 欧美日韩日本视频| 久久er精品视频| 蜜臀91精品一区二区三区| 亚洲手机成人高清视频| 欧美一级二区| 亚洲美女精品久久| 亚洲免费影视| 亚洲欧洲精品一区二区三区波多野1战4 | 依依成人综合视频| 欧美.www| 欧美先锋影音| 久久综合国产精品| 欧美日韩亚洲不卡| 久久午夜羞羞影院免费观看| 欧美精品麻豆| 久久国产夜色精品鲁鲁99| 女人色偷偷aa久久天堂| 欧美一区亚洲一区| 欧美激情亚洲| 久久看片网站| 国产精品大全| 亚洲国产欧美日韩精品| 国模精品一区二区三区色天香| 亚洲日本成人在线观看| 国产一区二区三区的电影| 亚洲美女诱惑| 亚洲国产一二三| 久久丁香综合五月国产三级网站| 一本色道久久综合亚洲精品婷婷| 久久精品盗摄| 欧美一级片久久久久久久| 欧美国产国产综合| 欧美成ee人免费视频| 国产午夜精品麻豆| 欧美在线视频一区| 亚洲国产另类 国产精品国产免费| 国产九九精品视频| 亚洲最快最全在线视频| 亚洲精品中文字幕有码专区| 久久久www成人免费无遮挡大片| 午夜视黄欧洲亚洲| 欧美午夜精品久久久久久超碰| 欧美激情视频在线播放| 精品成人国产| 久久精品视频在线看| 久久国产精品99精品国产| 国产精品免费网站| 在线天堂一区av电影| 亚洲午夜黄色| 欧美网站在线| 亚洲一区二区三区中文字幕| 亚洲男人的天堂在线观看| 国产精品福利在线观看| 亚洲视频狠狠| 性色av一区二区三区| 欧美性猛交xxxx免费看久久久| 亚洲免费大片| 中日韩男男gay无套| 欧美日韩一区国产| 一区二区三区四区蜜桃| 亚洲欧美在线高清| 国产欧美另类| 久久精品91久久香蕉加勒比| 你懂的国产精品| 亚洲精品久久久久中文字幕欢迎你| 免费久久99精品国产自| 亚洲黄色在线视频| 亚洲一区二区在线免费观看| 国产精品麻豆va在线播放| 亚洲欧美国产另类| 一本大道久久a久久精品综合| 欧美日韩日本国产亚洲在线| 亚洲一区二区日本| 久久久久久一区二区| 亚洲电影免费在线观看| 欧美精品福利在线| 亚洲一区免费看| 老鸭窝亚洲一区二区三区| 亚洲精品欧洲精品| 国产精品美女诱惑| 久久久精品日韩| 亚洲精品国产视频| 欧美在线高清| 亚洲精品三级| 国产老肥熟一区二区三区| 久久亚洲私人国产精品va媚药| 亚洲黄色精品| 久久国产精品毛片| 亚洲欧洲精品一区二区精品久久久| 欧美日韩中文另类| 看片网站欧美日韩| 亚洲一区影院| 亚洲国产成人久久综合| 欧美一区二区三区久久精品茉莉花| 有坂深雪在线一区| 国产精品毛片一区二区三区| 毛片基地黄久久久久久天堂| 亚洲午夜精品福利| 亚洲黄色毛片| 蜜臀久久99精品久久久久久9| 亚洲无线观看| 亚洲丶国产丶欧美一区二区三区| 欧美午夜视频在线| 免费欧美网站| 久久久999成人| 亚洲一区二区少妇| 久久精品亚洲精品| 欧美精品免费播放| 久久精品一区二区| 亚洲一区二区三区高清 | 一区二区三区产品免费精品久久75|