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

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>
            亚洲色图综合久久| 亚洲国产99| 欧美在线精品免播放器视频| 亚洲视频在线视频| 国产日韩亚洲欧美| 久久亚洲综合网| 女主播福利一区| 亚洲无线视频| 小黄鸭精品aⅴ导航网站入口| 国产一区观看| 亚洲国产天堂网精品网站| 欧美国产高清| 校园春色国产精品| 欧美激情综合五月色丁香| 亚洲视频成人| 欧美一区2区三区4区公司二百| 国内不卡一区二区三区| 亚洲国产欧美不卡在线观看| 欧美日韩不卡在线| 久久精品人人爽| 欧美大胆a视频| 欧美在线啊v一区| 欧美大秀在线观看| 久久aⅴ国产欧美74aaa| 欧美岛国激情| 久久久久久久网| 欧美日韩hd| 欧美a级在线| 国产精品腿扒开做爽爽爽挤奶网站 | 另类专区欧美制服同性| 欧美激情精品久久久久| 欧美影视一区| 欧美日韩精品一区二区三区四区| 久久久www免费人成黑人精品 | 亚洲精品小视频在线观看| 国产日韩欧美在线观看| 亚洲精品视频在线观看网站| 激情欧美亚洲| 亚洲欧美在线一区| 亚洲午夜精品久久久久久浪潮| 久久精品夜色噜噜亚洲a∨| 亚洲欧美日韩一区在线| 欧美成人精品一区二区| 久久综合网hezyo| 国产人成一区二区三区影院| 99re66热这里只有精品4| 亚洲国产高清一区二区三区| 午夜日韩福利| 欧美一区二区日韩| 国产精品久久久久免费a∨大胸| 欧美国产日本| 国产精品区一区二区三| 亚洲精品午夜精品| 99在线精品视频在线观看| 久久五月激情| 美女诱惑一区| 在线观看日韩国产| 久久久久九九视频| 蜜桃伊人久久| 亚洲黄色成人| 欧美成人精精品一区二区频| 欧美大片一区二区三区| 极品少妇一区二区| 久久综合精品一区| 欧美高清视频在线观看| 亚洲国产三级在线| 欧美精品1区| 日韩一二三区视频| 亚洲一品av免费观看| 国产精品毛片a∨一区二区三区|国| 一区二区精品国产| 性娇小13――14欧美| 国产欧美日韩中文字幕在线| 午夜久久资源| 欧美www在线| 一区二区av在线| 亚洲欧美综合另类中字| 99re6这里只有精品视频在线观看 99re6这里只有精品 | 国产一区二区三区日韩| 欧美自拍丝袜亚洲| 欧美黄污视频| 亚洲一区二区三区免费在线观看 | 国产精品区一区二区三| 欧美一激情一区二区三区| 久久精品在线视频| 亚洲精品123区| 欧美日韩综合| 久久国产欧美| 亚洲啪啪91| 欧美一区二区三区免费视频| 一区二区三区中文在线观看| 欧美激情二区三区| 亚洲欧美电影在线观看| 免费视频久久| 亚洲午夜久久久久久尤物| 国产亚洲一区二区精品| 欧美国产三级| 羞羞漫画18久久大片| 亚洲国产精品一区二区第四页av | 小嫩嫩精品导航| 亚洲成人资源网| 国产精品99一区| 久久久久久久久一区二区| 99精品国产99久久久久久福利| 久久国产视频网站| 日韩一区二区精品视频| 国内精品国产成人| 欧美亚洲成人网| 欧美99久久| 久久久av水蜜桃| 一区二区激情视频| 亚洲激情成人在线| 久久中文字幕一区| 午夜精品亚洲一区二区三区嫩草| 亚洲欧洲一区二区天堂久久 | 欧美日韩国产综合久久| 久久精品一区二区三区不卡牛牛| 一区二区av| 亚洲国产精品一区二区三区| 久久久久久黄| 欧美一区二视频| 亚洲天堂成人在线观看| 亚洲日本成人在线观看| 伊人成人在线| 国模吧视频一区| 国产日本欧美一区二区三区| 欧美日韩国语| 欧美日韩1区| 欧美电影专区| 欧美国产精品日韩| 欧美11—12娇小xxxx| 久热精品在线| 久久久久久久一区| 久久久免费av| 久久女同精品一区二区| 久久亚洲图片| 欧美在线电影| 久久久999国产| 久久婷婷久久| 免费成人av在线| 欧美国产日韩精品| 欧美日韩免费视频| 欧美色区777第一页| 亚洲视频观看| 国产精品嫩草久久久久| 午夜亚洲性色福利视频| 一区二区三区四区国产| 亚洲图片欧洲图片av| 一区二区三区视频在线看| 亚洲婷婷在线| 午夜精品一区二区三区在线 | 亚洲另类一区二区| 日韩一区二区福利| 亚洲欧美日韩国产中文在线| 亚洲午夜国产成人av电影男同| 亚洲影院色无极综合| 欧美一区二区女人| 米奇777超碰欧美日韩亚洲| 欧美激情一区二区三区全黄| 亚洲精选一区二区| 亚洲综合精品自拍| 久久青草福利网站| 欧美全黄视频| 国产欧美va欧美不卡在线| 国产一区观看| av不卡在线| 久久国产综合精品| 亚洲国产欧美在线| 亚洲午夜极品| 鲁大师影院一区二区三区| 欧美色大人视频| 狠狠色综合日日| 亚洲一区二区在| 蜜桃av一区二区在线观看| 亚洲毛片播放| 久久免费少妇高潮久久精品99| 欧美精品在线观看播放| 国产亚洲制服色| 亚洲美女色禁图| 久久资源av| 在线视频免费在线观看一区二区| 久久国产日韩欧美| 欧美日韩精品免费观看| 国产综合在线视频| 亚洲一区视频在线观看视频| 久久亚洲国产精品一区二区| 亚洲精品一区在线观看香蕉| 欧美专区亚洲专区| 国产精品大片| 亚洲人成啪啪网站| 久久精品国产精品亚洲| 一本色道久久加勒比精品| 欧美专区在线观看| 国产精品亚洲视频| 在线亚洲美日韩| 欧美激情第五页| 久久久91精品国产| 国产欧美一区二区三区沐欲| 在线午夜精品| 亚洲精品小视频在线观看|