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

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>
            久久久国际精品| 国产亚洲精品美女| 亚洲欧美综合一区| 校园激情久久| 久久精品一区中文字幕| 久久色在线播放| 久久久久久综合网天天| 免费人成网站在线观看欧美高清| 能在线观看的日韩av| 欧美日韩在线一区二区三区| 国产伦精品一区二区三区四区免费| 国产午夜精品理论片a级探花| 好吊色欧美一区二区三区视频| 亚洲国产精品视频一区| 这里只有精品在线播放| 欧美一级专区免费大片| 欧美h视频在线| 亚洲私人影吧| 欧美成年人视频网站欧美| 国产精品日韩在线| 亚洲日本aⅴ片在线观看香蕉| 亚洲一区免费网站| 欧美激情无毛| 欧美在线播放高清精品| 欧美精品在线免费观看| 国产亚洲福利| 一区二区三区欧美成人| 老司机精品久久| 日韩亚洲在线观看| 久久久久一本一区二区青青蜜月| 欧美网站在线| 亚洲伦理自拍| 免费久久99精品国产自| 香蕉久久一区二区不卡无毒影院| 欧美经典一区二区三区| 在线观看视频一区二区欧美日韩| 亚洲影视中文字幕| 欧美在线视频免费播放| 在线视频精品一区| 欧美成人精品三级在线观看| 国产亚洲精品bt天堂精选| 一区二区三区四区精品| 欧美成人a视频| 久久国产精品99精品国产| 国产精品久久久久久一区二区三区| 亚洲第一福利在线观看| 久久久久久久久久久一区| 亚洲视频一二| 欧美特黄一区| 亚洲午夜高清视频| 亚洲理论在线观看| 欧美精品电影在线| 日韩视频一区| 亚洲精品国产精品国产自| 久久久久久999| 黄色一区二区在线| 免费在线成人av| 噜噜噜噜噜久久久久久91 | 美女图片一区二区| 久久av资源网站| 韩国精品在线观看| 久久久国产亚洲精品| 久久精品国产成人| 在线精品视频在线观看高清| 免费一区二区三区| 欧美夫妇交换俱乐部在线观看| 亚洲精品四区| 亚洲美女在线观看| 国产精品高清一区二区三区| 亚洲欧美另类中文字幕| 亚洲欧美日韩国产成人| 国产一区二区丝袜高跟鞋图片| 久久精品免费播放| 久久手机精品视频| 99精品国产在热久久婷婷| 日韩亚洲欧美综合| 国产婷婷97碰碰久久人人蜜臀| 久久久久天天天天| 欧美华人在线视频| 亚洲制服少妇| 久久精品国产2020观看福利| 亚洲国产精品黑人久久久| 亚洲精品国偷自产在线99热| 国产精品福利在线观看网址| 久久激五月天综合精品| 免费在线欧美黄色| 午夜国产欧美理论在线播放| 久久久久久久一区二区三区| 夜夜躁日日躁狠狠久久88av| 亚洲免费一区二区| 亚洲国产经典视频| 亚洲午夜一区二区| 红桃视频一区| 亚洲精品久久久久久久久久久久| 国产精品视频精品| 欧美激情视频一区二区三区不卡| 欧美三级网页| 欧美日韩一区二区三区四区五区| 国产精品国内视频| 久久最新视频| 欧美日韩你懂的| 久久久一本精品99久久精品66| 欧美高清影院| 久久九九全国免费精品观看| 欧美人在线观看| 蜜臀久久99精品久久久久久9| 欧美日韩网址| 欧美激情bt| 国内精品免费在线观看| 日韩午夜一区| 亚洲欧洲精品一区二区三区波多野1战4| 一区二区三区日韩精品视频| 尤物九九久久国产精品的特点| 中文无字幕一区二区三区| 亚洲狠狠婷婷| 久久久久久日产精品| 欧美在线视频播放| 欧美偷拍一区二区| 亚洲精品免费一二三区| 亚洲第一在线视频| 久久精品久久99精品久久| 欧美在线一区二区三区| 国产精品久久久久影院亚瑟| 99re6这里只有精品| 亚洲黄色大片| 美国三级日本三级久久99| 久久全球大尺度高清视频| 国产女人18毛片水18精品| 亚洲色图制服丝袜| 亚洲专区免费| 国产精品日韩久久久久| 亚洲一区二区三区激情| 亚洲一区黄色| 欧美午夜视频| 亚洲一区二区三区免费视频 | 亚洲国产三级在线| 蜜桃av噜噜一区| 欧美成人午夜激情在线| 一区二区三区在线高清| 久久久久国色av免费看影院| 久久野战av| 亚洲国产一区二区三区高清| 久久综合九色综合欧美就去吻| 美女999久久久精品视频| 在线国产亚洲欧美| 欧美刺激午夜性久久久久久久| 亚洲第一搞黄网站| 亚洲免费精品| 国产精品国产三级国产aⅴ无密码| 99国产精品视频免费观看| 亚洲欧美日韩综合| 国产亚洲精品美女| 久久综合狠狠综合久久综青草| 亚洲国产精品久久91精品| 99综合视频| 国产精品毛片在线| 久久精品色图| 亚洲国产日韩精品| 亚洲图片在线观看| 国产视频久久网| 美女精品在线观看| 一区二区三区国产精品| 久久精品女人| 亚洲美女色禁图| 亚洲国产成人在线视频| 国产精品羞羞答答xxdd| 亚洲一卡久久| 美女久久一区| 一区二区高清在线| 国产精品一区二区三区四区五区 | 一区二区精品国产| 久久久久久久一区二区三区| 亚洲韩国日本中文字幕| 国产精品高潮久久| 老司机精品久久| 一区二区三区四区五区视频| 久久久久久久高潮| 亚洲婷婷综合久久一本伊一区| 国内综合精品午夜久久资源| 欧美激情1区2区| 久久精品99国产精品酒店日本| 最新亚洲视频| 久久久福利视频| 亚洲午夜91| 亚洲日韩欧美视频一区| 国模 一区 二区 三区| 欧美日韩国产小视频在线观看| 欧美一级视频| 一本大道av伊人久久综合| 欧美激情精品| 久久久噜噜噜久噜久久| 亚洲图片在区色| 亚洲三级观看| 激情亚洲网站| 国产视频一区二区在线观看 | 亚洲午夜一区二区| 亚洲人成精品久久久久| 美国十次成人| 麻豆成人精品| 久久深夜福利|