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

Singleton這又是為什么???

Posted on 2008-11-26 21:10 MiweiDev 閱讀(618) 評(píng)論(4)  編輯 收藏 引用 所屬分類(lèi): C / C++Language

設(shè)計(jì)模式之Singleton 單態(tài)模式想必大家都玩過(guò),但是今天我碰到個(gè)問(wèn)題,沒(méi)想清楚,忘高手賜教!
下面就是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

下面是一個(gè)類(lèi)A來(lái)運(yùn)用他“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;
    }

}
;


類(lèi)A的實(shí)現(xiàn)“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函數(shù)了~
#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;注釋掉了,但是還是....成功的調(diào)用了函數(shù)....只不過(guò)沒(méi)有打印進(jìn)入構(gòu)造函數(shù)...的信息。
WHY ? 沒(méi)進(jìn)構(gòu)造函數(shù)那么getSingletonPtr()應(yīng)該是NULL吧。還能調(diào)用函數(shù)print??

Feedback

# re: Singleton這又是為什么???  回復(fù)  更多評(píng)論   

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

# re: Singleton這又是為什么???  回復(fù)  更多評(píng)論   

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

# re: Singleton這又是為什么???  回復(fù)  更多評(píng)論   

2008-12-15 14:38 by 小不點(diǎn)
知道了,網(wǎng)上看到的。
http://topic.csdn.net/u/20070807/09/22087b45-a62e-4b73-b17a-962b8a5f4dd1.html
只要函數(shù)里面不通過(guò)this指針去操作成員變量就行,成員函數(shù)跟一般的函數(shù)沒(méi)什么差別,只不過(guò)調(diào)用方式需要一個(gè)類(lèi)的對(duì)象或者指針來(lái)調(diào)用罷了,因?yàn)樗J(rèn)綁定了一個(gè)this指針形參而已,這個(gè)指針為0也沒(méi)問(wèn)題。

# re: Singleton這又是為什么???[未登錄](méi)  回復(fù)  更多評(píng)論   

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

只要函數(shù)里面不通過(guò)this指針去操作成員變量就行,成員函數(shù)跟一般的函數(shù)沒(méi)什么差別,只不過(guò)調(diào)用方式需要一個(gè)類(lèi)的對(duì)象或者指針來(lái)調(diào)用罷了。
這個(gè)解釋不錯(cuò)
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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一区| 欧美日韩亚洲一区在线观看| 欧美国产日韩精品免费观看| 久久在线视频在线| 久久先锋影音av| 久久综合久色欧美综合狠狠| 欧美国产三区| 国产精品v片在线观看不卡 | 欧美韩国日本一区| 欧美高清视频www夜色资源网| 欧美a级理论片| 亚洲成在人线av| 欧美xxxx在线观看| 亚洲一区二区三区四区五区午夜 | 老牛影视一区二区三区| 久久香蕉国产线看观看av| 欧美.com| 亚洲一级黄色av| 久久免费视频在线观看| 欧美精品自拍偷拍动漫精品| 国产欧美日韩综合一区在线观看| 亚洲国产精品视频| 亚洲欧美日韩国产一区二区| 两个人的视频www国产精品| 亚洲欧洲精品一区二区| 性欧美xxxx大乳国产app| 欧美国产精品v| 亚洲欧洲在线观看| 欧美精品一区二区三区四区| 欧美三级网址| 国产日韩欧美一区| 日韩亚洲欧美一区二区三区| 欧美一区二区视频观看视频| 免费久久99精品国产自在现线| 99精品国产一区二区青青牛奶| 久久久久国色av免费观看性色| 欧美日韩视频专区在线播放 | 欧美激情第9页| 国产偷国产偷精品高清尤物| 亚洲午夜电影网| 亚洲精品国产精品国自产在线| 欧美视频中文字幕在线| 国产精品久久久久91| 亚洲国产精品久久久久| 亚洲免费视频中文字幕| 亚洲国产欧美不卡在线观看| 亚洲男人天堂2024| 欧美日韩卡一卡二| 影音先锋亚洲电影| 亚洲少妇最新在线视频| 亚洲区中文字幕| 欧美激情bt| 亚洲高清一二三区| 免费成人黄色| 99精品免费| 欧美国产精品专区| 亚洲精品国产拍免费91在线| 欧美成人精品一区| 蜜臀91精品一区二区三区| 欧美一级免费视频| 国产视频一区欧美| 亚洲欧美第一页| 亚洲国产99| 欧美暴力喷水在线| 亚洲日本成人女熟在线观看| 亚洲国产成人av| 米奇777在线欧美播放| 91久久黄色| 欧美成人一品| 久久久亚洲高清| 黄色av一区| 欧美韩国日本综合| 麻豆国产精品一区二区三区| 在线播放日韩专区| 免费欧美视频| 欧美美女操人视频| 在线中文字幕日韩| 美女精品在线观看| 国产在线成人| 久热精品视频在线| 欧美精品在线网站| 欧美一区二区性| 久久久久高清| 在线一区欧美| 久久久精品tv| 国产精品99久久久久久有的能看| 亚洲永久精品大片| 亚洲观看高清完整版在线观看| 亚洲精品网址在线观看| 国产午夜精品久久久久久久| 欧美国产成人在线| 国产精品免费一区二区三区观看 | 黑人操亚洲美女惩罚| 亚洲第一精品夜夜躁人人爽| 欧美亚洲成人网| 欧美成人精品一区二区三区| 国产精品久久久久一区二区三区共 | 亚洲欧美一区二区三区久久| 激情偷拍久久| 妖精成人www高清在线观看| 国产一区二区三区av电影| 亚洲国产一二三| 国产一区深夜福利| 一级日韩一区在线观看| 亚洲高清网站| 久久福利电影| 香蕉久久久久久久av网站| 老色鬼久久亚洲一区二区| 性欧美大战久久久久久久免费观看| 欧美不卡福利| 美脚丝袜一区二区三区在线观看 | 国产精品爽爽ⅴa在线观看| 亚洲福利视频二区| 黄色精品一二区| 亚洲一区免费在线观看| 亚洲精品1区2区| 午夜精品婷婷| 亚洲永久视频| 欧美日本韩国一区| 亚洲欧洲日产国产网站| **性色生活片久久毛片| 久久精品视频网| 久久婷婷人人澡人人喊人人爽| 国产精品家庭影院| 一本色道久久99精品综合| 99re6这里只有精品视频在线观看| 午夜精品一区二区三区电影天堂| 亚洲午夜羞羞片| 欧美日韩另类综合| 日韩一级在线| 亚洲一区二区不卡免费| 欧美视频不卡| 日韩网站在线观看| 美女视频网站黄色亚洲| 国产精品xxxxx| 正在播放亚洲一区| 亚洲国产清纯| 国产一区二区三区无遮挡| 一区二区三区精品在线| 亚洲在线成人精品| 欧美久久久久| 亚洲精品中文在线| 亚洲久久一区二区| 欧美 日韩 国产一区二区在线视频| 欧美成人综合网站| 亚洲精品久久久久久久久久久久久| 欧美成人午夜激情视频| 亚洲精品在线三区| 欧美一区二区三区在线| 国一区二区在线观看| 午夜视频一区二区| 蜜臀av一级做a爰片久久| 亚洲国产精品999| 欧美日韩高清在线| 亚洲欧美高清| 欧美色图五月天| 亚洲一区免费网站| 久久久久久久一区二区| 亚洲国产成人精品女人久久久 | 亚洲一区二区视频在线观看| 欧美一级片一区| 樱花yy私人影院亚洲| 欧美成人蜜桃| 亚洲性感美女99在线| 久久在线免费| 在线视频欧美一区| 国产日韩一区二区三区在线| 久久久久欧美精品| 99天天综合性| 久久婷婷亚洲| 亚洲视频第一页| 韩国三级电影久久久久久| 欧美激情视频一区二区三区在线播放| 一区二区三区欧美在线观看| 麻豆国产精品777777在线| 中文精品在线| 亚洲国语精品自产拍在线观看| 国产精品国产三级国产aⅴ浪潮| 久久精品一本久久99精品| 9久草视频在线视频精品| 免费亚洲网站| 欧美一区2区三区4区公司二百| 亚洲激情成人网| 国产亚洲综合性久久久影院| 欧美日韩国产成人在线| 久久女同互慰一区二区三区| 亚洲免费一区二区| 99国产精品国产精品毛片| 欧美韩日一区二区三区| 久久美女性网| 欧美在线国产| 亚洲免费人成在线视频观看| 亚洲毛片在线| 亚洲黑丝在线|