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

C++之竹

無論是太陽下,還是風雨中,都要成長!

常用鏈接

統(tǒng)計

最新評論

Singleton模式——C++應用(二)

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

 

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

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

的特點。那么,通過這個局部靜態(tài)變量來創(chuàng)建的單件又會是什么樣呢?貼上我的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í)行結果:

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

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

 

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

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美在线影院| 国产精品久久久久久久久免费樱桃 | 久久精品男女| 久久精品国产99精品国产亚洲性色| 亚洲视屏在线播放| 午夜久久tv| 久久久91精品国产一区二区三区 | 激情婷婷久久| 国产精品视区| 亚洲精品日韩精品| 亚洲精品欧美日韩| 亚洲视屏在线播放| 久久久九九九九| 欧美1区3d| 国产精品啊v在线| 国产在线欧美| 亚洲盗摄视频| 亚洲欧美日韩一区二区三区在线| 欧美一区二区视频在线| 久久亚洲私人国产精品va| 亚洲电影观看| 含羞草久久爱69一区| 亚洲大胆在线| 亚洲午夜久久久| 久久精品亚洲热| 91久久极品少妇xxxxⅹ软件| 中日韩男男gay无套| 久久久久一区二区三区| 欧美午夜视频在线| 亚洲激情啪啪| 久久久97精品| 亚洲精品在线观看视频| 久久精品亚洲一区| 国产精品欧美久久久久无广告| 亚洲丁香婷深爱综合| 亚洲欧美中文日韩在线| 欧美风情在线| 久久精品成人| 国产精品日韩欧美综合| 99国产精品| 欧美aaa级| 午夜久久tv| 国产精品网站在线播放| 亚洲日本va午夜在线电影| 久久久亚洲国产天美传媒修理工| 亚洲美女毛片| 免费精品视频| 韩国女主播一区| 欧美一区在线直播| aⅴ色国产欧美| 欧美日本亚洲视频| 亚洲精品一区二区三区蜜桃久| 免播放器亚洲一区| 欧美在线观看网站| 国产精品自拍三区| 欧美一区二粉嫩精品国产一线天| 亚洲精品一区二区三区蜜桃久 | 老色鬼久久亚洲一区二区| 午夜精品成人在线视频| 国产精品三上| 亚洲欧美日韩精品久久奇米色影视| 91久久线看在观草草青青| 久久婷婷综合激情| 影音先锋一区| 99re热精品| 亚洲男人的天堂在线aⅴ视频| 欧美日韩国产成人在线| 日韩视频在线观看一区二区| 欧美国产第一页| 久久免费视频网站| 亚洲国产欧美一区二区三区同亚洲| 欧美刺激性大交免费视频| 久热这里只精品99re8久| 亚洲人线精品午夜| 亚洲色图自拍| 国产婷婷成人久久av免费高清| 欧美一区二区| 久久免费视频在线| 99视频日韩| 这里只有精品在线播放| 国产视频在线观看一区| 欧美成人精品一区二区三区| 欧美不卡视频一区| 亚洲视频一区| 欧美一区二区精品| 亚洲黄色免费| 亚洲午夜av| 狠狠狠色丁香婷婷综合激情| 欧美激情一区二区在线| 欧美日韩一区二区三区视频 | 亚洲午夜在线观看视频在线| 亚洲一本大道在线| 欲香欲色天天天综合和网| 亚洲黄色成人久久久| 国产精品九色蝌蚪自拍| 久久中文在线| 欧美日韩在线高清| 久久综合精品国产一区二区三区| 欧美激情一区二区三区高清视频 | 亚洲国产高清一区二区三区| 国产精品福利影院| 老妇喷水一区二区三区| 欧美久久久久久久久久| 性娇小13――14欧美| 美女在线一区二区| 性欧美长视频| 欧美电影在线观看完整版| 欧美一区在线视频| 欧美日韩国产精品一区二区亚洲| 久久久噜噜噜久久狠狠50岁| 欧美日本精品| 欧美黑人国产人伦爽爽爽| 国产精品一区在线观看| 亚洲区一区二| 亚洲高清电影| 久久精品99| 欧美一区2区视频在线观看 | 欧美怡红院视频| 在线一区日本视频| 免费不卡在线观看av| 国产精品99久久久久久白浆小说 | 香蕉久久夜色精品国产使用方法| 亚洲欧洲视频| 久久久亚洲人| 久久精品导航| 国产精品久久久久久久久久直播 | 亚洲理论在线观看| 亚洲国产精品一区二区www在线| 午夜精品久久久久| 亚洲一区二区三区国产| 欧美日韩国产首页在线观看| 欧美激情影音先锋| 最新国产成人av网站网址麻豆 | 国产精品成人aaaaa网站| 欧美大片在线观看| 在线观看不卡av| 久久在线播放| 欧美成人情趣视频| 在线观看av不卡| 麻豆国产精品777777在线 | 男人插女人欧美| 激情视频一区二区| 美国三级日本三级久久99| 麻豆久久精品| 亚洲国产一区二区三区在线播| 久久久久久尹人网香蕉| 久久婷婷激情| 亚洲国产一区在线| 欧美日韩日日夜夜| 亚洲在线观看免费视频| 久久国产欧美日韩精品| 激情校园亚洲| 欧美 日韩 国产精品免费观看| 欧美激情久久久| a4yy欧美一区二区三区| 国产精品入口麻豆原神| 羞羞答答国产精品www一本 | 久久综合精品一区| 在线精品福利| 欧美精品三级在线观看| 在线性视频日韩欧美| 欧美专区一区二区三区| 一区二区亚洲| 欧美精品国产精品| 亚洲一区bb| 免费亚洲电影| 亚洲综合99| 在线看片第一页欧美| 欧美精品一区二区三区久久久竹菊 | 亚洲美女av网站| 国产精品视频1区| 久久综合色一综合色88| 99国产精品久久| 久久久国产精品亚洲一区| 久久精品99国产精品酒店日本| 国产欧美日韩不卡| 久久久久成人网| 日韩一级片网址| 久久电影一区| 亚洲区一区二区三区| 国产精品都在这里| 久久蜜桃资源一区二区老牛| 亚洲精品乱码久久久久久黑人| 欧美一区二区三区视频| 亚洲精品小视频| 国产在线欧美| 国产精品久久久久999| 裸体歌舞表演一区二区| 欧美一级视频精品观看| 亚洲理伦电影| 亚洲高清在线| 久久久久一区二区三区| 亚洲欧美日韩视频二区| 亚洲国产欧美一区| 狠狠色2019综合网| 国产精品一区一区三区| 国产精品久久久久久久久动漫| 你懂的国产精品| 久久久之久亚州精品露出| 亚洲自拍16p|