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

Singleton這又是為什么???

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

設(shè)計模式之Singleton 單態(tà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

下面是一個類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的實現(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ù)....只不過沒有打印進(jìn)入構(gòu)造函數(shù)...的信息。
WHY ? 沒進(jìn)構(gòu)造函數(shù)那么getSingletonPtr()應(yīng)該是NULL吧。還能調(diào)用函數(shù)print??

Feedback

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

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

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

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

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

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

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

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

只要函數(shù)里面不通過this指針去操作成員變量就行,成員函數(shù)跟一般的函數(shù)沒什么差別,只不過調(diào)用方式需要一個類的對象或者指針來調(diào)用罷了。
這個解釋不錯
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            这里是久久伊人| 亚洲一区二区三区中文字幕在线| 亚洲欧美精品一区| 国产视频精品网| 麻豆成人在线| 欧美全黄视频| 久久精品国产久精国产爱| 久久视频一区| 亚洲自啪免费| 裸体一区二区三区| 亚洲一区bb| 久久久国产成人精品| 日韩一区二区精品在线观看| 亚洲性视频网站| 国产一区视频在线观看免费| 91久久久精品| 国产精品第一区| 美女视频一区免费观看| 午夜精品区一区二区三| 亚洲精品视频在线播放| 亚洲图片欧美日产| 亚洲精品一区二区三区四区高清 | 亚洲乱码视频| 国产精品劲爆视频| 欧美成人免费在线| 欧美视频在线观看免费网址| 免费成人黄色av| 欧美日韩在线视频首页| 另类亚洲自拍| 国产精品久久久久久影院8一贰佰 国产精品久久久久久影视 | 亚洲精品乱码久久久久久蜜桃91| 亚洲欧美一区二区三区在线| 亚洲国产精品成人精品| 欧美亚洲日本国产| 宅男精品导航| 欧美伦理视频网站| 久久视频精品在线| 麻豆freexxxx性91精品| 久久视频一区| 国产精品久久久| 日韩亚洲一区在线播放| 极品av少妇一区二区| 欧美在线亚洲| 亚洲欧美日韩国产成人| 欧美三级在线| 亚洲国产精品国自产拍av秋霞| 国模叶桐国产精品一区| 亚洲专区国产精品| 亚洲欧美综合精品久久成人| 欧美激情在线观看| 亚洲精品综合在线| 免费看黄裸体一级大秀欧美| 欧美精品一卡| 在线一区二区三区四区| 欧美专区在线播放| 黄色精品一二区| 欧美日韩综合在线| 久久久爽爽爽美女图片| 91久久在线播放| 久久精品一区二区三区不卡| 香蕉久久夜色精品国产| 国产农村妇女精品一二区| 午夜精品婷婷| 欧美精品一区在线播放| 欧美α欧美αv大片| 国产精品一二一区| 欧美在线视频网站| 欧美激情成人在线| 欧美黄色网络| 精品动漫3d一区二区三区免费版 | 麻豆国产va免费精品高清在线| 国产精品久久久久影院亚瑟| 亚洲人成欧美中文字幕| 亚洲电影下载| 久久亚洲一区二区| 久久蜜桃av一区精品变态类天堂| 国产精品美女久久久| 一个色综合av| 亚洲欧美日韩中文在线制服| 国产精品久久久久久久久动漫| 亚洲精品久久| 一区二区三区四区国产精品| 欧美日韩国产精品| 99re热这里只有精品免费视频| 一本色道久久88精品综合| 欧美日韩视频专区在线播放| 在线视频一区观看| 午夜精品久久久久久久白皮肤 | 久久久久久97三级| 欧美+亚洲+精品+三区| 91久久久在线| 欧美片在线观看| 亚洲小少妇裸体bbw| 久久久久久午夜| 亚洲国产高清视频| 亚洲一区二区三区中文字幕在线| 久久精品毛片| 欧美日本中文| 国产欧美日韩综合一区在线观看 | 亚洲欧美亚洲| 这里只有视频精品| 国产精品va在线播放| 日韩亚洲欧美一区二区三区| 亚洲欧美日韩综合| 国产精品网站在线| 亚洲一区二区三区精品动漫| 日韩一区二区精品视频| 亚洲一区二区三区在线看 | 美女网站在线免费欧美精品| 久久久久久久久久码影片| 欧美日韩国产一区| 好吊色欧美一区二区三区视频| 一本色道久久综合亚洲精品小说| 欧美在线免费视屏| 日韩一区二区精品葵司在线| 久久国产天堂福利天堂| 国产精品美女久久久久久久| 久久久国际精品| 国产欧美一区二区精品婷婷| 亚洲国产精品精华液2区45| 欧美成人免费播放| 午夜激情一区| 久久se精品一区精品二区| 亚洲国产精品一区二区www在线| 一区二区国产日产| 欧美一区二粉嫩精品国产一线天| 欧美中文在线免费| 亚洲视频一二| 国产精品户外野外| 欧美激情中文不卡| 久久av一区| 欧美在线视频在线播放完整版免费观看| 亚洲国产精品悠悠久久琪琪| 久久裸体艺术| 欧美亚洲日本国产| 国内一区二区三区在线视频| 国产日韩精品入口| 狂野欧美激情性xxxx| 久久亚洲私人国产精品va媚药| 亚洲美女区一区| 国产日韩精品一区| 欧美亚日韩国产aⅴ精品中极品| 玖玖玖免费嫩草在线影院一区| 欧美一区二区三区四区在线观看地址| 欧美成人自拍视频| 亚洲欧美www| 日韩亚洲欧美精品| 亚洲麻豆国产自偷在线| 亚洲第一精品电影| 激情欧美一区二区| 国产精品毛片| 久久视频国产精品免费视频在线| 久久精品盗摄| 欧美亚洲视频在线观看| 蜜桃av噜噜一区| 久久精品30| 欧美三级中文字幕在线观看| 亚洲激情视频在线| 亚洲欧美在线一区二区| 亚洲成人在线网| 含羞草久久爱69一区| 国产伦精品一区二区三| 国产精品久久久久久久app| 欧美日韩国产综合视频在线| 欧美精品啪啪| 欧美日本不卡| 久久精品国产在热久久| 亚洲私人影院在线观看| 欧美激情91| 久久精品一级爱片| 亚洲欧美日韩精品久久| 亚洲欧美影院| 久久国产精品久久久久久电车| 亚洲欧美色婷婷| 午夜在线成人av| 久久久国产亚洲精品| 老司机67194精品线观看| 每日更新成人在线视频| 欧美福利视频网站| av成人免费在线| 亚洲在线成人| 久久精品国产亚洲5555| 欧美激情亚洲| 国产乱码精品1区2区3区| 免费亚洲视频| 欧美无砖砖区免费| 欧美精品自拍| 激情国产一区| 日韩视频在线免费观看| 久久综合999| 亚洲国产一区二区三区在线播| 亚洲欧美日韩国产综合精品二区| 午夜视频在线观看一区二区| 欧美黑人国产人伦爽爽爽| 国产精品v日韩精品| 国产精品亚洲激情| 国产精品男女猛烈高潮激情| 国产精品日韩二区| 国一区二区在线观看| 亚洲人成人一区二区在线观看|