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

Singleton這又是為什么???

Posted on 2008-11-26 21:10 MiweiDev 閱讀(614) 評論(4)  編輯 收藏 引用 所屬分類: C / C++Language

設計模式之Singleton 單態模式想必大家都玩過,但是今天我碰到個問題,沒想清楚,忘高手賜教!
下面就是Singleton頭文件“1.h”

#ifndef _SINGLETON_H__
#define _SINGLETON_H__

#include 
<assert.h>
#include 
<iostream>
using namespace std;

#if VW3D_COMPILER == COMPILER_MSVC
// Turn off warnings generated by this singleton implementation
#   pragma warning (disable : 4311)
#   pragma warning (disable : 
4312)
#endif


/** Template class for creating single-instance global classes.
*/

template 
<typename T> class Singleton
{
protected:

    
static T* ms_Singleton;

public:
    Singleton( 
void )
    
{
        cout 
<< "Sungleton Create~" << endl;
        assert( 
!ms_Singleton );
        ms_Singleton 
= static_cast< T* >this );
    }

    
~Singleton( void )
    
{
        cout 
<< "Sungleton DeCreate~" << endl;
        assert( ms_Singleton );  ms_Singleton 
= 0;  
    }

    
static T& getSingleton( void )
    
{  assert( ms_Singleton );  return ( *ms_Singleton );  }
    
static T* getSingletonPtr( void )
    
{  return ( ms_Singleton );  }
}
;
#endif

下面是一個類A來運用他“A.h”
#pragma once
#include 
"1.h"
#include 
<iostream>
using namespace std;

class CA : public Singleton<CA>
{
public:
    CA(
void);
    
~CA(void);

    
void print(int i)
    
{
        cout 
<< i << endl;
    }

}
;


類A的實現“a.cpp”
#include ".\a.h"

CA 
* Singleton<CA>::ms_Singleton = NULL;

CA::CA(
void)
{
    cout 
<< "Cr CA" << endl;
}


CA::
~CA(void)
{
    cout 
<< "~~CA" << endl;
}


OK最下面就是Main函數了~
#include <Windows.h>
#include 
<iostream>
#include 
<tchar.h>
#include 
<assert.h>
#include 
"A.h"
   
int main()
   
{
      
// CA ca;
       CA::getSingletonPtr()->print(100);

       getchar();
       
return 0;
   }

瞧我把CA ca;注釋掉了,但是還是....成功的調用了函數....只不過沒有打印進入構造函數...的信息。
WHY ? 沒進構造函數那么getSingletonPtr()應該是NULL吧。還能調用函數print??

Feedback

# re: Singleton這又是為什么???  回復  更多評論   

2008-12-15 12:56 by adrianx
加個成員變量就知道了

# re: Singleton這又是為什么???  回復  更多評論   

2008-12-15 14:33 by 小不點
按著你的建議,我定義了一個CA的成員變量m_nMember;在構造函數里面把它初始化為5,同時也定義了一個成員函數Print2(){cout << "i'm print2" <<endl;},這時候我把print()函數改變了,在他末尾添加上了打印m_nMember,這時候出現錯誤,說訪問0x00000000錯誤。我又改變了print函數,去掉了打印m_nMember,在他前面加上了Print2()函數,這時候又正確了,
為什么空指針還能調用成員函數,而訪問成員變量就不是那回事了呢?

# re: Singleton這又是為什么???  回復  更多評論   

2008-12-15 14:38 by 小不點
知道了,網上看到的。
http://topic.csdn.net/u/20070807/09/22087b45-a62e-4b73-b17a-962b8a5f4dd1.html
只要函數里面不通過this指針去操作成員變量就行,成員函數跟一般的函數沒什么差別,只不過調用方式需要一個類的對象或者指針來調用罷了,因為它默認綁定了一個this指針形參而已,這個指針為0也沒問題。

# re: Singleton這又是為什么???[未登錄]  回復  更多評論   

2008-12-15 19:12 by 王博煒
這樣也行?

只要函數里面不通過this指針去操作成員變量就行,成員函數跟一般的函數沒什么差別,只不過調用方式需要一個類的對象或者指針來調用罷了。
這個解釋不錯
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美日韩国产bt| 久久视频免费观看| 国产精品白丝av嫩草影院| 亚洲理论在线| 亚洲视频一区在线| 国产精品免费视频xxxx| 欧美在线网站| 欧美成人一区二区三区| 日韩视频免费在线| 国产精品视频你懂的| 久久综合色婷婷| 亚洲深夜福利视频| 欧美插天视频在线播放| 午夜精品久久久久久久99热浪潮| 国产亚洲一区二区三区| 欧美日本一道本| 久久久久九九视频| 一区二区三区不卡视频在线观看| 欧美成人国产一区二区| 亚洲电影免费在线| 欧美美女bbbb| 国产精品久久久久久久电影| 欧美成人午夜激情| 欧美在线一二三四区| 久久综合亚洲社区| 国产精品国产三级国产a| 好吊色欧美一区二区三区四区 | 精久久久久久久久久久| 国产精品成人一区二区网站软件| 国产日韩欧美一区二区| 欧美日韩在线播放三区| 欧美成年人在线观看| 欧美午夜宅男影院在线观看| 狠狠色2019综合网| 亚洲欧美福利一区二区| 一区二区三区视频在线| 亚洲日本欧美天堂| 亚洲国产老妈| 国产综合激情| 一区在线免费观看| 亚洲欧美日韩直播| 亚洲黄色在线看| 欧美成人黑人xx视频免费观看| 一二三四社区欧美黄| 免费短视频成人日韩| 午夜精品久久久久99热蜜桃导演| 国产精品自拍在线| 国产精品久久久久高潮| 亚洲精品乱码久久久久久| 久久久久久综合网天天| 欧美中日韩免费视频| 亚洲欧美日韩在线不卡| 亚洲人妖在线| 亚洲精品一区二区三区99| 久久久精品一品道一区| 麻豆国产精品777777在线| 国产亚洲一区二区精品| 午夜一区不卡| 久久综合九色综合网站| 亚洲国产毛片完整版| 亚洲精品字幕| 欧美sm重口味系列视频在线观看| 欧美日韩成人| 夜夜夜久久久| 先锋影音久久| 亚洲色图自拍| 国产精品自拍网站| 久久久91精品国产一区二区三区 | 欧美激情一级片一区二区| 亚洲国产欧美一区二区三区同亚洲| 久久精品欧洲| 亚洲承认在线| 亚洲一区二区三区视频播放| 欧美一区二区私人影院日本| 欧美xx视频| 暖暖成人免费视频| 日韩亚洲欧美成人一区| 久久激情视频免费观看| 亚洲精品一区二区三区蜜桃久| 欧美国产日韩亚洲一区| 国产欧美va欧美va香蕉在| 亚洲国产另类久久久精品极度| 老司机成人在线视频| 一本色道久久综合一区| 国产精品视频免费在线观看| 久久久久久久久久久久久9999| 久久久久在线观看| 99视频热这里只有精品免费| 亚洲一区亚洲| 欧美精品色综合| 国内精品久久久| 欧美成人中文| 欧美午夜电影一区| 久久久噜噜噜久噜久久| 欧美久久久久久| 性色av一区二区三区| 麻豆精品精华液| 欧美亚洲在线视频| 欧美精品国产| 久久尤物视频| 欧美四级剧情无删版影片| 欧美日韩视频一区二区| 国产欧美不卡| 亚洲激情视频在线播放| 国产欧美在线播放| 亚洲国产精品尤物yw在线观看 | 久久久久免费视频| 欧美日韩国产探花| 久久综合五月| 国产精品自在线| 亚洲另类视频| 亚洲国产毛片完整版 | 久久综合久久综合九色| 亚洲欧美激情精品一区二区| 麻豆乱码国产一区二区三区| 欧美在线观看视频在线| 欧美三区在线视频| 亚洲国产一区二区三区高清| 激情另类综合| 午夜日韩激情| 国产欧美日韩精品丝袜高跟鞋 | 一本色道久久88亚洲综合88| 久久精品一区二区国产| 欧美一区二区三区视频在线 | 亚洲一区久久久| 亚洲午夜黄色| 国内精品免费在线观看| 一区二区高清| 亚洲视频一二区| 欧美精品免费播放| 亚洲国产精品一区二区第四页av | 亚洲欧美日韩国产精品| 欧美日韩国产在线播放网站| 亚洲国产精品成人va在线观看| 在线成人h网| 亚洲国产成人tv| 精品99一区二区三区| 欧美一区二区三区日韩| 亚洲国产91| 日韩一级裸体免费视频| 国产麻豆精品久久一二三| 亚洲视频电影在线| 午夜日本精品| 国产日韩欧美一区二区| 欧美专区在线观看| 久久综合网色—综合色88| 在线日本成人| 欧美高清在线一区| 99国产麻豆精品| 尤物视频一区二区| 亚洲国产精品成人精品| 亚洲午夜高清视频| 亚洲一区二区三区影院| 国产精品久久久久久久9999| 亚洲影院色在线观看免费| 午夜在线精品偷拍| 黄色一区三区| 欧美日韩成人综合| 亚洲视频在线观看| 久久米奇亚洲| 亚洲日本免费| 国产精品亚洲аv天堂网| 欧美在线看片| 亚洲国产另类精品专区| 欧美一级播放| 亚洲经典一区| 国产精品爽黄69| 久久综合给合| 亚洲午夜久久久久久久久电影网| 久久免费偷拍视频| 亚洲精品一区二区三区四区高清| 欧美日韩人人澡狠狠躁视频| 欧美一级视频免费在线观看| 亚洲第一黄色| 久久精品91久久久久久再现| 亚洲精品小视频| 国产一区二区三区免费不卡| 欧美精品高清视频| 欧美影院在线| 日韩视频在线一区二区三区| 久久久久久噜噜噜久久久精品 | 欧美怡红院视频| 亚洲精品九九| 国产欧美日韩亚洲精品| 欧美另类高清视频在线| 欧美影视一区| 亚洲一区二区三区三| 亚洲国产美国国产综合一区二区| 久久精品国产欧美激情| 亚洲色诱最新| 亚洲精品一区二区三| 国产一区二区三区网站| 国产精品夫妻自拍| 欧美高清你懂得| 久久视频精品在线| 欧美影视一区| 亚洲欧美日韩人成在线播放| 亚洲男女毛片无遮挡| 最新亚洲激情| 欧美激情视频在线播放 |