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

通關旅

softgamer的痕跡
posts - 16, comments - 13, trackbacks - 0, articles - 0

C++體會 -- 靜態數據成員

Posted on 2007-02-10 09:10 softgamer 閱讀(639) 評論(0)  編輯 收藏 引用 所屬分類: 學習日志
?? 靜態數據成員很像是全局變量,但static數據成員有類作用域,靜態成員可以是public,private或protected.
?? 靜態數據成員在文件范圍內必須進行一次初始化。類的public靜態成員可以通過類的任何對象訪問,也可以用二元作用域分辨符通過類名進行訪問。類的private和protected 靜態成員必須通過類的public成員函數或類的友元訪問即使類沒有對象,但仍然有靜態成員。類沒有對象時,要想訪問public靜態類成員,只需在成員數據名前加上類名和二元作用域分辨符(::).要在類沒有對象時訪問private或protected 靜態類成員,則需要提供一個public靜態成員函數,并在調用函數時在函數名前面加上類名和二元作用域分辨符。

#File Test.h
#ifndef TEST_H
#define TEST_H

class Test
{
?? public:
???????? Test( const char * , const char * );
???????? ~Test();
???????? const char *GetFstString() const;
???????? const char *GetLstString() const;

???????? static int GetCount();

? private:
???????? char * strFst;
???????? char * strLst;

???????? static int count;?

};


#endif
---------------------------------------------------------------------------------
#File Test.cpp
#include <iostream>

using std::cout;
using std::endl;

#include <cstring>
#include <cassert>
#include "Test.h"

int Test::count = 0;

int Test::GetCount() { return count ; }


Test::Test( const char * sFst, const char * sLst )
{
?? strFst = new char[ strlen( sFst ) + 1 ];
?? assert( strFst != 0 );
?? strcpy( strFst, sFst );
?
?? strLst = new char[ strlen( sLst ) + 1 ];
?? assert( strLst != 0 );
?? strcpy( strLst, sLst );?

?? count++; // inc static count

?? cout << " Test cons for " << strFst
??????? << "? " << strLst << " called. " << endl;
}
?
Test::~Test()
{
?? cout << " ~Test() called for " << strFst
??????? << " " << strLst << endl;
?? delete [] strFst;
?? delete [] strLst;
?? count--;
}

const char * Test::GetFstString() const
{
??? return strFst;
}

const char * Test::GetLstString() const
{
??? return strLst;
}

--------------------------------------------------------------------------------
#File: main.cpp
#include <iostream>

using std::cout;
using std::endl;

#include "Test.h"

int main()
{
?? cout << "before cons is "
??????? << Test::GetCount() << endl; // use class name

?? Test *pTest1 = new Test( "FstTest1", "LstTest1" );
?? Test *pTest2 = new Test( "FstTest2", "LstTest2" );

?? cout << "after cons is "
??????? << pTest1->GetCount();? //using instan

?? cout << "\n\nTest1: "
??????? << pTest1->GetFstString()
??????? << " " << pTest1->GetLstString()
??????? << "\nTest2:"
??????? << pTest2->GetFstString()
??????? << " " << pTest2->GetLstString() << "\n\n" << endl;

?? delete pTest1;
?? pTest1 = 0;
?? delete pTest2;
?? pTest2 = 0;

?? cout << "num after deletion is "
??????? << Test::GetCount() << endl;

?? return 0;
??????
}
-------------------------------------------------------------------------------------------

Result:
before cons is 0
?Test cons for FstTest1? LstTest1 called.
?Test cons for FstTest2? LstTest2 called.
after cons is 2

Test1: FstTest1 LstTest1
Test2:FstTest2 LstTest2


?~Test() called for FstTest1 LstTest1
?~Test() called for FstTest2 LstTest2
num after deletion is 0

?? Test類在沒有對象時,仍然可以引用count成員,但是只能通過調用靜態成員函數GetCount()完成.
?? 沒有實例化的對象,一定是用類名調用Test::GetCount(),如果有實例化的對象,則可以用pTest1->GetCount()
調用。我們公司明確規定,所有靜態成員函數只能調用類名句柄,不能調用對象句柄,我覺得這樣很好。


?? 還有一點,如果成員函數不訪問非靜態數據成員和成員函數,可以將成員函數聲明為靜態,與非靜態成員函數不同的是,靜態成員函數沒有this指針,因為靜態類數據成員和成員函數是獨立于類對象而存才的。
?
?? 關于斷言(assert) , assert類宏在cassert頭文件中定義。用于測試條件值,注意assert不運行任何析構函數即可中止程序執行. assert不一定要在調試完成后刪除,只需在程序文件開頭(通常可以在編譯器選項中指定)插入語句
#define NDEBUG


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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夜夜| 国产欧美一区二区在线观看| 日韩系列欧美系列| 亚洲国产成人porn| 欧美福利一区二区| 91久久精品日日躁夜夜躁国产| 亚洲黄色视屏| 99精品免费网| 亚洲欧美在线磁力| 久久久青草婷婷精品综合日韩 | 香蕉成人久久| 久久成人国产| 亚洲国产一区二区在线| 日韩性生活视频| 亚洲一二三区视频在线观看| 性欧美大战久久久久久久免费观看| 久久精品亚洲乱码伦伦中文| 免费视频一区| 欧美性做爰毛片| 影音先锋成人资源站| 亚洲欧洲精品一区二区三区不卡| 中文日韩电影网站| 亚洲午夜精品久久| 久久国产精品一区二区| 欧美人与性动交a欧美精品| 国产精品美腿一区在线看 | 国产精品伦子伦免费视频| 国产三级精品三级| 亚洲三级视频| 久久久综合网站| 日韩视频专区| 久久婷婷国产麻豆91天堂| 欧美午夜一区二区三区免费大片| 国内成人自拍视频| 亚洲制服欧美中文字幕中文字幕| 久久免费少妇高潮久久精品99| 亚洲毛片av| 美女亚洲精品| 国内揄拍国内精品少妇国语| 在线视频亚洲欧美| 欧美好吊妞视频| 欧美在线啊v一区| 国产精品久久久久9999| 91久久久亚洲精品| 蜜乳av另类精品一区二区| 亚洲一区二区三区三| 欧美精选一区| 亚洲激情一区二区| 美女免费视频一区| 久久久www成人免费无遮挡大片| 国产精品久久久久久影视| 91久久久久| 欧美激情亚洲激情| 久久精品视频在线看| 国产主播喷水一区二区| 亚洲一区二区3| 99视频热这里只有精品免费| 欧美日韩成人在线视频| 亚洲精品美女| 欧美风情在线| 麻豆9191精品国产| 亚洲国产片色| 亚洲黄色三级| 欧美日韩卡一卡二| 亚洲欧美中文日韩在线| 亚洲一区二区在线免费观看视频 | 亚洲区国产区| 欧美精品在线看| 亚洲综合欧美| 新狼窝色av性久久久久久| 国产日韩欧美日韩| 久久人人九九| 欧美 日韩 国产精品免费观看| 最新日韩在线| 99国内精品久久| 国产精品羞羞答答| 老司机午夜精品| 欧美激情四色| 国产精品一区二区黑丝| 午夜久久黄色| 久久精品国产v日韩v亚洲| 激情综合激情| 亚洲国产成人在线播放| 欧美日韩视频在线一区二区观看视频| 亚洲一区二区精品在线观看| 亚洲欧美变态国产另类| 伊伊综合在线| 一区二区三区波多野结衣在线观看| 国产精品视频精品视频| 麻豆成人精品| 欧美图区在线视频| 久久精品综合一区| 欧美精品一区二区视频| 羞羞色国产精品| 欧美第一黄网免费网站| 亚洲欧美另类国产| 蜜月aⅴ免费一区二区三区 | 亚洲人成人99网站| 亚洲午夜伦理| 亚洲精美视频| 亚洲综合日韩中文字幕v在线| 在线免费观看视频一区| 一区二区高清视频| 一本色道久久综合亚洲精品婷婷| 国产精品中文在线| 亚洲丶国产丶欧美一区二区三区| 国产精品久久久久久福利一牛影视 | 国产视频久久网| 亚洲国产精品欧美一二99| 国产人成一区二区三区影院| 91久久精品国产91性色tv| 韩国一区电影| 亚洲一区二区黄色| 日韩视频在线一区| 久久中文精品| 午夜亚洲伦理| 欧美日韩视频在线一区二区 | 午夜精品一区二区在线观看| 欧美激情第三页| 久热精品在线| 好看的av在线不卡观看| 亚洲亚洲精品三区日韩精品在线视频| 亚洲国产欧美不卡在线观看| 久久不射2019中文字幕| 亚洲综合激情| 欧美日韩一区三区四区| 亚洲激情校园春色| 亚洲日本成人| 欧美国产免费| 亚洲高清电影| 亚洲精品美女久久久久| 欧美sm极限捆绑bd| 亚洲国产精品va| 亚洲盗摄视频| 免播放器亚洲一区| 欧美国产三级| 欧美+日本+国产+在线a∨观看| 久久在精品线影院精品国产| 国产一区二区久久精品| 欧美在线视频播放| 久久综合激情| 亚洲国产精品一区| 美女视频网站黄色亚洲| 亚洲高清资源综合久久精品| 亚洲国产精品久久人人爱蜜臀| 久久久噜噜噜久久中文字幕色伊伊| 久久精品综合一区| 亚洲国产小视频| 欧美欧美天天天天操| 99视频超级精品| 久久国产精品久久国产精品| 国产日韩精品在线| 久久久久天天天天| 亚洲精品国久久99热| 亚洲欧美第一页| 国产视频一区三区| 久久精品在这里| 亚洲狠狠婷婷| 久久www成人_看片免费不卡| 国内精品久久久| 欧美激情一区二区三区成人| 日韩视频免费观看高清完整版| 亚洲欧美国产日韩天堂区| 国产日韩欧美在线播放不卡| 久久噜噜噜精品国产亚洲综合 | 亚洲永久视频| 激情久久五月天| 欧美激情精品久久久久| 亚洲视频一区二区在线观看 | 国产欧美一区二区精品婷婷 | 欧美高清免费| 亚洲深夜福利视频| 国产一区二区三区直播精品电影 | 中文av字幕一区| 久久亚洲综合| 亚洲一区二区黄色| 激情综合五月天| 欧美天堂在线观看| 久久免费黄色| 亚洲免费视频一区二区| 欧美不卡一卡二卡免费版| 亚洲色图制服丝袜| 亚洲电影专区| 国产精品视频在线观看| 欧美成人午夜激情在线| 性欧美暴力猛交69hd| 夜夜嗨av一区二区三区网页| 模特精品在线| 欧美一级淫片aaaaaaa视频| 亚洲精品一区二区三区99| 国产一区亚洲一区| 国产精品你懂的| 欧美女同在线视频| 欧美91大片| 久久频这里精品99香蕉| 亚洲欧美日韩精品久久| 一区二区三区国产在线| 亚洲精品在线电影| 亚洲日本久久| 亚洲全黄一级网站|