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

通關旅

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>
            久久精品国产清自在天天线| 久久综合色天天久久综合图片| 在线视频一区观看| 妖精成人www高清在线观看| 亚洲欧美制服中文字幕| 亚洲精品少妇30p| 久久字幕精品一区| 国产情人节一区| 久久av资源网站| 日韩一级在线观看| 性一交一乱一区二区洋洋av| 亚洲精品专区| 欧美+亚洲+精品+三区| 国产午夜精品理论片a级大结局| 中国成人亚色综合网站| 午夜亚洲福利| 亚洲精品视频啊美女在线直播| 国产精品二区三区四区| 久久人人精品| 国产精品久久久久毛片软件 | 国产精品爱啪在线线免费观看| 亚洲自拍偷拍视频| 久久免费视频一区| 性欧美精品高清| 亚洲人成亚洲人成在线观看| 亚洲日本中文字幕免费在线不卡| 国产精品久久久久影院亚瑟| 欧美激情视频在线播放| 狠狠色丁香婷婷综合久久片| 欧美激情视频在线播放| 久久综合中文色婷婷| 欧美在线网址| 欧美成人影音| 久久久久久电影| 欧美伦理a级免费电影| 日韩天天综合| 欧美韩日精品| 欧美在线网站| 韩国一区二区三区在线观看| 亚洲精品在线观看免费| 亚洲黄色在线| 久久精品日韩欧美| 亚洲激情一区| 国产精品第三页| 狠狠色狠狠色综合日日小说| 亚洲第一在线综合网站| 久久免费精品日本久久中文字幕| 国产主播一区二区三区| 一区二区三区不卡视频在线观看 | 亚洲电影下载| 亚洲国内在线| 开心色5月久久精品| 久久国产精彩视频| 国色天香一区二区| 久久精品水蜜桃av综合天堂| 欧美顶级大胆免费视频| 欧美久久久久久蜜桃| 午夜宅男欧美| 久久精品一区二区三区中文字幕| 欧美性猛交一区二区三区精品| 久久99伊人| 亚洲欧洲一区二区三区在线观看 | 最新亚洲视频| 最新亚洲视频| 亚洲一区免费观看| 久久九九国产精品怡红院| 尤妮丝一区二区裸体视频| 亚洲激情婷婷| 洋洋av久久久久久久一区| 欧美日韩精品综合| 久久狠狠一本精品综合网| 亚洲综合社区| 精品成人一区二区三区| 国产欧美一区二区视频| 欧美日韩伦理在线| 一区二区免费在线播放| 99精品欧美| 欧美黄色成人网| 亚洲欧美制服中文字幕| 国内在线观看一区二区三区 | 亚洲精品久久久久久久久| 欧美福利一区二区三区| 1024亚洲| 国产精品有限公司| 欧美成人性生活| 久久久777| 欧美成人免费全部| 亚洲国产日韩欧美在线图片| 一本色道久久加勒比精品| 亚洲国产精品激情在线观看| 午夜欧美理论片| 美女任你摸久久| 在线亚洲高清视频| 欧美在线啊v| 欧美精品导航| 国产一区91| 一区二区欧美精品| 久久乐国产精品| 亚洲一区国产| 久久天堂成人| 1024成人网色www| 麻豆精品精华液| 国产精品久久久久一区二区三区共 | 亚洲尤物精选| 亚洲婷婷在线| 国产精品视频成人| 宅男精品导航| 亚洲福利在线看| 欧美成人在线网站| 久久久久久久一区| 亚洲国产精品久久久久秋霞蜜臀 | 久久国产一区| 亚洲欧美日韩系列| 国产亚洲欧美色| 国产伦精品一区二区三| 久久精品一区二区三区不卡| 久久国产精品亚洲77777| 国产精品乱看| 亚洲女同在线| 亚洲精选在线观看| 卡通动漫国产精品| 欧美一区二区视频在线观看2020| 亚洲国产日韩在线一区模特| 亚洲一区二区三区精品动漫| 亚洲视频网在线直播| 亚洲第一页在线| 国产精品中文在线| 欧美顶级少妇做爰| 久久亚洲综合网| 欧美日韩mv| 久久在线免费观看视频| 欧美成人一品| 亚洲国产精品精华液网站| 亚洲欧洲一区二区三区| 亚洲国产片色| 久久综合九色综合欧美狠狠| 一本到高清视频免费精品| 国产精品色婷婷| 亚洲欧美一区二区三区久久 | 一区二区久久| 在线播放视频一区| 9色精品在线| 国产丝袜美腿一区二区三区| 亚洲免费影院| 欧美一区二区久久久| 亚洲经典在线看| 亚洲精品日本| 在线播放亚洲一区| 亚洲精品孕妇| 欧美成人资源| 国产精品福利网站| av成人福利| 亚洲日本在线观看| 欧美高清一区| 欧美成人免费全部观看天天性色| 亚洲高清在线观看一区| 亚洲承认在线| 久久九九热re6这里有精品| 免费亚洲网站| 国产精品一区二区三区乱码| 亚洲性线免费观看视频成熟| 午夜精品免费视频| 久久嫩草精品久久久久| 久久一日本道色综合久久| 欧美精品国产精品| 国产精品国产三级国产专区53| 亚洲一区二区三区精品视频| 久久riav二区三区| 欧美日韩国产综合网| 亚洲国产欧美在线人成| 亚洲美女毛片| 国产精品久久精品日日| 久久九九全国免费精品观看| 欧美色大人视频| 亚洲一级网站| 亚洲第一黄网| 久久久福利视频| 欧美一区二区三区免费看| 国产精品久久久久久久久借妻| 亚洲一区在线播放| 老司机精品久久| 亚洲无玛一区| 国产亚洲一区在线播放| 免费观看日韩| 久久精品一二三| 在线观看国产精品网站| 欧美精品日韩www.p站| 久久成人精品一区二区三区| 亚洲精品一级| 国产女主播一区二区三区| 欧美亚洲成人精品| 久久最新视频| 亚洲一区二区在线看| 国产日韩一区二区三区在线播放| 国产精品嫩草影院av蜜臀| 欧美成人午夜影院| 一区二区久久久久| 欧美一区免费视频| 一区二区电影免费观看| 欧美午夜不卡|