• <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>
            C++分析研究  
            C++
            日歷
            <2013年4月>
            31123456
            78910111213
            14151617181920
            21222324252627
            2829301234
            567891011
            統(tǒng)計(jì)
            • 隨筆 - 92
            • 文章 - 4
            • 評(píng)論 - 4
            • 引用 - 0

            導(dǎo)航

            常用鏈接

            留言簿

            隨筆檔案

            文章檔案

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

             

              單件模式是一種用于確保整個(gè)應(yīng)用程序中只有一個(gè)類實(shí)例且這個(gè)實(shí)例所占資源在整個(gè)應(yīng)用程序中是共享時(shí)的程序設(shè)計(jì)方法(根據(jù)實(shí)際情況,可能需要幾個(gè)類實(shí)例)。在某些情況下,這種程序設(shè)計(jì)方法是很有用處的 www.lefeng123.com
              Singleton模式的實(shí)現(xiàn)基于兩個(gè)要點(diǎn):
              1)不直接用類的構(gòu)造函數(shù),而另外提供一個(gè)Public的靜態(tài)方法來構(gòu)造類的實(shí)例。通常這個(gè)方法取名為Instance.Public保證了它的全局可見性,靜態(tài)方法保證了不會(huì)創(chuàng)建出多余的實(shí)例。
              2)將類的構(gòu)造函數(shù)設(shè)為Private,即將構(gòu)造函數(shù)"隱藏"起來,任何企圖使用構(gòu)造函數(shù)創(chuàng)建實(shí)例的方法都將報(bào)錯(cuò)。這樣就阻止了開發(fā)人員繞過上面的Instance方法直接創(chuàng)建類的實(shí)例。
              #include <iostream>
              #include <cassert>
              using namespace std;
              template<typename T>
              class Singleton
              {
              public:
              static T *getInstancePtr()
              {
              if (m_Instance == NULL) {
              m_Instance = new T;
              }
              return m_Instance;
              }
              static T& getInstance()
              {
              assert(m_Instance);
              return (*m_Instance);
              }
              private:
              Singleton(){};
              static T *m_Instance;
              };
              template<typename T> T * Singleton<T>::m_Instance = NULL;
              class A
              {
              public:
              void display(){cout《"A is display"《endl;}
              };
              int main()
              {
              /*Singleton<int>::getInstancePtr();
              cout《Singleton<int>::getInstance()《endl;
              Singleton<int>::getInstance()=5;
              cout《Singleton<int>::getInstance()《endl;*/
              A* p=Singleton<A>::getInstancePtr();
              p->display();
              return 0;
              }

            posted on 2014-03-21 21:31 HAOSOLA 閱讀(214) 評(píng)論(0)  編輯 收藏 引用

            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


             
            Copyright © HAOSOLA Powered by: 博客園 模板提供:滬江博客
            PK10開獎(jiǎng) PK10開獎(jiǎng)
            久久亚洲AV永久无码精品| 久久久噜噜噜久久中文字幕色伊伊| A级毛片无码久久精品免费| 亚洲国产成人久久一区WWW| 亚洲综合伊人久久综合| 久久久久久综合一区中文字幕| 亚洲精品WWW久久久久久| 日产精品久久久久久久| 久久精品中文字幕有码| jizzjizz国产精品久久| 伊人久久五月天| 日本道色综合久久影院| 久久人人爽人人爽人人爽| 26uuu久久五月天| 久久精品国产亚洲AV麻豆网站| 久久精品亚洲精品国产欧美| 久久精品人成免费| 久久精品国产99久久久古代| 久久久久久久久久久免费精品| 久久综合欧美成人| 久久久久人妻一区精品色| 久久久国产视频| 亚洲欧洲精品成人久久曰影片| 国产亚洲精午夜久久久久久 | 国内精品久久久久| 无码人妻久久一区二区三区| 热99RE久久精品这里都是精品免费| 亚洲国产精品久久久久网站| 国产精品久久久久久一区二区三区| 亚洲国产精品无码久久98| 久久久久亚洲av综合波多野结衣| 香蕉久久永久视频| 精品久久久久久久国产潘金莲| 欧美性大战久久久久久| 一本久久免费视频| 中文字幕久久精品| 久久婷婷五月综合成人D啪| 亚洲狠狠婷婷综合久久久久| 亚洲AV日韩AV天堂久久| 久久精品aⅴ无码中文字字幕不卡| 久久精品夜夜夜夜夜久久|