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

Singleton這又是為什么???

Posted on 2008-11-26 21:10 MiweiDev 閱讀(619) 評論(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在线播放| 一区在线观看视频| 亚洲一品av免费观看| 美女999久久久精品视频| 一区二区三区免费观看| 麻豆国产精品777777在线| 国产精品jvid在线观看蜜臀| 在线日韩一区二区| 午夜视频在线观看一区二区三区| 亚洲电影自拍| 午夜视频一区二区| 欧美日韩黄色大片| 亚洲国产成人porn| 久久黄色级2电影| 亚洲黄色小视频| 久久精品国产亚洲一区二区| 国产精品日韩久久久| av不卡在线观看| 欧美激情亚洲精品| 久久黄色影院| 国产九九精品视频| 亚洲一区二区四区| 欧美激情 亚洲a∨综合| 欧美在线一区二区| 国产精自产拍久久久久久| 在线一区二区三区做爰视频网站| 欧美激情按摩在线| 久久精品一区蜜桃臀影院 | 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ入口 | 久久爱另类一区二区小说| 国产精品日韩一区二区| 亚洲女同性videos| 亚洲一级二级| 国产欧美日韩视频在线观看 | 国产婷婷色综合av蜜臀av| 亚洲素人一区二区| 99视频精品在线| 欧美视频四区| 亚洲欧美自拍偷拍| 午夜精品视频在线观看| 国产一区二区三区精品欧美日韩一区二区三区 | 香蕉尹人综合在线观看| 亚洲一区二区在线免费观看视频| 国产精品久久久久久久久免费樱桃 | 欧美一区二区三区的| 午夜一区二区三区不卡视频| 国产一区视频网站| 美女久久一区| 欧美黄色一区| 中文av一区特黄| 亚洲在线观看视频网站| 国产婷婷一区二区| 欧美1区2区3区| 欧美激情免费在线| 亚洲欧美韩国| 欧美一区2区视频在线观看| 伊人狠狠色丁香综合尤物| 欧美激情一区二区三级高清视频| 欧美精品一区二区三| 亚洲欧美日韩一区二区| 欧美专区日韩视频| 亚洲精选国产| 亚洲一区二区黄| 一区二区三区在线观看欧美| 亚洲黄色免费| 国产精品一区二区久久| 另类av一区二区| 欧美日本在线视频| 久久国产成人| 欧美成年人视频网站欧美| 亚洲一区二区三区在线播放| 欧美亚洲午夜视频在线观看| 亚洲黑丝在线| 亚洲一级影院| 亚洲激情影视| 亚洲一区二区黄色| 亚洲国产精品视频一区| 一本色道久久综合狠狠躁的推荐| 国产伪娘ts一区| 亚洲国产精品ⅴa在线观看 | 欧美特黄一区| 久色成人在线| 欧美午夜激情小视频| 老司机精品福利视频| 欧美日韩精品免费观看视频完整| 久久久国产精品一区二区三区| 欧美a级片网站| 欧美在线播放| 欧美精品18+| 久久久久久亚洲综合影院红桃 | 欧美激情在线观看| 欧美伊人久久久久久午夜久久久久| 美女视频黄免费的久久| 午夜在线观看免费一区| 欧美成人dvd在线视频| 欧美在线播放| 欧美日韩国产免费| 嫩草成人www欧美| 国产精品中文字幕欧美| 91久久国产综合久久蜜月精品| 国产日韩欧美综合精品| 亚洲日韩欧美一区二区在线| 国产真实乱子伦精品视频| 一个色综合导航| 91久久精品www人人做人人爽 | 亚洲手机成人高清视频| 久久久久久久综合| 欧美一级播放| 欧美三级视频在线观看| 亚洲国产成人av在线| 国产主播一区二区三区四区| 亚洲色图在线视频| 99re这里只有精品6| 久久一二三区| 久久久国产一区二区| 国产精品久久久久三级| 亚洲人成在线播放| 亚洲国产高清视频| 久久国产精品72免费观看| 亚洲欧美日韩在线观看a三区| 欧美精品aa| 亚洲电影毛片| 在线欧美视频| 久久精品免费播放| 久久精品国产亚洲aⅴ| 国产精品理论片| 9人人澡人人爽人人精品| 亚洲美女淫视频| 牛夜精品久久久久久久99黑人| 快播亚洲色图| 激情综合五月天| 欧美一区免费| 久久久精品性| 国产综合一区二区| 欧美一区二区在线免费播放| 欧美影院成年免费版| 国产精品综合av一区二区国产馆| 亚洲视屏在线播放| 亚洲欧美日韩在线不卡| 欧美性大战久久久久久久蜜臀 | 免费成人高清| 在线观看日韩www视频免费| 久久精品国语| 美女久久一区| 亚洲国产精品成人综合色在线婷婷| 久久久久久久久久久久久9999| 久久免费精品视频| 一区在线影院| 久久亚洲私人国产精品va| 欧美xxxx在线观看| 亚洲国产成人午夜在线一区| 麻豆精品在线观看| 亚洲电影在线看| 99精品视频网| 国产精品99一区| 亚洲自拍偷拍福利| 久久精品国产亚洲a| 韩国精品在线观看| 久久色在线观看| 欧美激情一区三区| 日韩视频一区二区在线观看| 欧美日韩成人在线观看| 一区二区三区精密机械公司| 欧美亚洲综合另类| 国产一区二区激情| 玖玖视频精品| 亚洲欧洲在线观看| 亚洲一区免费视频| 国产日韩欧美亚洲一区| 久久精品91久久香蕉加勒比 | 欧美与黑人午夜性猛交久久久| 国产日韩欧美在线一区| 久久久久国产一区二区三区| 欧美国产在线视频| 一区二区激情小说| 国产精品免费观看视频| 欧美影片第一页| 亚洲电影免费观看高清完整版在线| 99精品欧美一区| 国产精品一区二区三区四区| 久久久久国产精品一区| 亚洲国产精品va在线观看黑人| 亚洲视频一二三| 国产亚洲福利| 欧美大色视频| 亚洲欧美成人一区二区三区| 久久综合九色综合久99| 亚洲美女少妇无套啪啪呻吟| 国产精品欧美一区喷水| 久久久91精品国产| 欧美承认网站| 亚洲一区二区不卡免费| 国产揄拍国内精品对白| 欧美精品麻豆| 欧美一级专区免费大片| 最新日韩av| 欧美一区国产二区| 亚洲精品日本|