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

Design&Art

C++博客 首頁 新隨筆 聯(lián)系 聚合 管理
  26 Posts :: 0 Stories :: 38 Comments :: 0 Trackbacks
一、對于基本聲明 

1.const int r=100; //標準const變量聲明加初始化,因為默認內部連接所以必須被初始化,其作用域為此文件,編譯器經過類型檢查后直接用100在編譯時替換。 

2.extend const int r=100; //將const改為外部連接,作用于擴大至全局,編譯時會分配內存,并且可以不進行初始化,僅僅作為聲明,編譯器認為在程序其他地方進行了定義。 

3.const int r[ ]={1,2,3,4}; 

struct S {int a,b;}; 
const S s[ ]={(1,2),(3.4)}; //以上兩種都是常量集合,編譯器會為其分配內存,所以不能在編譯期間使用其中的值,例如:int temp[r[2]];這樣的編譯器會報告不能找到常量表達式 

二、對于指針 
1.const int *r=&x; //聲明r為一個指向常量的x的指針,r指向的對象不能被修改,但他可以指向任何地址的常量。 

2.int const *r=&x; //與用法1完全等價,沒有任何區(qū)別。 

3.int * const r=&x; //聲明r為一個常量指針,他指向x,r這個指針的指向不能被修改,但他指向的地址的內容可以修改。 

4.const int * const r=&x; //綜合1、3用法,r是一個指向常量的常量型指針。 

三、對于類型檢查 
可以把一個非const對象賦給一個指向const的指針,因為有時候我們不想從這個指針來修改其對象的值;但是不可以把一個const對象賦值給一個非const指針,因為這樣可能會通過這個指針改變指向對象的值,但也存在使這種操作通過的合法化寫法,使用類型強制轉換可以通過指針改變const對象: 

const int r=100; 
int * ptr = const_cast<int *>(&r); //C++標準,C語言使用:int * ptr =(int*)&r; 

四、對于字符數(shù)組 
如char * name = “china”; 這樣的語句,在編譯時是能夠通過的,但是”china”是常量字符數(shù)組,任何想修改他的操作也能通過編譯但會引起運行時錯誤,如果我們想修改字符數(shù)組的話就要使用char name[ ] = “china”; 這種形式。 

五、對于函數(shù) 
1.void Fuction1 ( const int r ); //此處為參數(shù)傳遞const值,意義是變量初值不能被函數(shù)改變 

2.const int Fuction1 (int); //此處返回const值,意思指返回的原函數(shù)里的變量的初值不能被修改,但是函數(shù)按值返回的這個變量被制成副本,能不能被修改就沒有了意義,它可以被賦給任何的const或非const類型變量,完全不需要加上這個const關鍵字。但這只對于內部類型而言(因為內部類型返回的肯定是一個值,而不會返回一個變量,不會作為左值使用),對于用戶自定義類型,返回值是常量是非常重要的,見下面條款3。 

3.Class CX; //內部有構造函數(shù),聲明如CX(int r =0) 

CX Fuction1 () { return CX(); } 

const CX Fuction2 () { return CX(); } 

如有上面的自定義類CX,和函數(shù)Fuction1()和Fuction2(),我們進行如下操作時: 

Fuction1() = CX(1); //沒有問題,可以作為左值調用 

Fuction2() = CX(1); //編譯錯誤,const返回值禁止作為左值調用。因為左值把返回值作為變量會修改其返回值,const聲明禁止這種修改。 


4.函數(shù)中指針的const傳遞和返回: 

int F1 (const char * pstr); //作為傳遞的時候使用const修飾可以保證不會通過這個指針來修改傳遞參數(shù)的初值,這里在函數(shù)內部任何修改*pstr的企圖都會引起編譯錯誤。 

const char * F2 (); //意義是函數(shù)返回的指針指向的對象是一個const對象,它必須賦給一個同樣是指向const對象的指針。 

const char * const F3(); //比上面多了一個const,這個const的意義只是在他被用作左值時有效,它表明了這個指針除了指向const對象外,它本身也不能被修改,所以就不能當作左值來處理。 


5.函數(shù)中引用的const傳遞: 

void F1 ( const X& px); //這樣的一個const引用傳遞和最普通的函數(shù)按值傳遞的效果是一模一樣的,他禁止對引用的對象的一切修改,唯一不同的是按值傳遞會先建立一個類對象的副本,然后傳遞過去,而它直接傳遞地址,所以這種傳遞比按值傳遞更有效。 

**另外只有引用的const傳遞可以傳遞一個臨時對象,因為臨時對象都是const屬性,且是不可見的,他短時間存在一個局部域中,所以不能使用指針,只有引用的const傳遞能夠捕捉到這個家伙。 

六、對于類 
1.首先,對于const的成員變量,只能在構造函數(shù)里使用初始化成員列表來初始化,試圖在構造函數(shù)體內進行初始化const成員變量會引起編譯錯誤。初始化成員列表形如: 
2.X:: X ( int ir ): r(ir) {} //假設r是類X的const成員變量 

2.const成員函數(shù)。提到這個概念首先要談到const對象,正象內置類型能夠定義const對象一樣(const int r=10;),用戶自定義類型也可以定義const對象(const X px(10);),編譯器要保證這個對象在其生命周期內不能夠被改變。如果你定義了這樣的一個const對象,那么對于這個對象的一切非const成員函數(shù)的調用,編譯器為了保證對象的const特性,都會禁止并在編譯期間報錯。所以如果你想讓你的成員函數(shù)能夠在const對象上進行操作的話,就要把這個函數(shù)聲明為const成員函數(shù)。假如f( )是類中的成員函數(shù)的話,它的聲明形如: 
int f( ) const; //const放在函數(shù)的最后,編譯器會對這個函數(shù)進行檢查,在這個函數(shù)中的任何試圖改變成員變量和調用非const成員函數(shù)的操作都被視為非法 
注意:類的構造和析構函數(shù)都不能是const函數(shù)。 

3.建立了一個const成員函數(shù),但仍然想用這個函數(shù)改變對象內部的數(shù)據(jù)。這樣的一個要求也會經常遇到,尤其是在一個苛刻的面試考官那里。首先我們要弄清楚考官的要求,因為有兩種方法可以實現(xiàn),如果這位考官要求不改變原來類的任何東西,只讓你從當前這個const成員函數(shù)入手,那么你只有使用前面提到的類型強制轉換方法。實例如下: 

//假如有一個叫做X的類,它有一個int成員變量r,我們需要通過一個const成員函數(shù)f( )來對這個r進行++r操作,代碼如下 

void X::f( ) const 

{ (const_cast(this)) -> ++r; } //通過this指針進行類型強制轉換實現(xiàn) 

另外一種方法就是使用關鍵字:mutable。如果你的成員變量在定義時是這個樣子的: 

mutable int r ; 

那么它就告訴編譯器這個成員變量可以通過const成員函數(shù)改變。編譯器就不會再理會對他的檢查了。 
posted on 2009-04-11 00:51 安帛偉 閱讀(364) 評論(0)  編輯 收藏 引用 所屬分類: C++

只有注冊用戶登錄后才能發(fā)表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美激情精品久久久久久大尺度 | 欧美日韩免费一区| 亚洲性感激情| 艳女tv在线观看国产一区| 老牛嫩草一区二区三区日本| 亚洲一级二级在线| 亚洲专区一区| 葵司免费一区二区三区四区五区| 亚洲欧美日韩人成在线播放| 午夜免费日韩视频| 久久精品国亚洲| 巨胸喷奶水www久久久免费动漫| 久久精品夜色噜噜亚洲a∨ | 国产日韩一级二级三级| 国产精品乱码人人做人人爱| 国产亚洲一级| 亚洲精品免费一二三区| 亚洲午夜精品久久久久久浪潮| 亚洲免费在线观看视频| 欧美高清视频在线观看| 一本色道久久综合亚洲精品高清| 亚洲一二三四久久| 麻豆视频一区二区| 国产欧美一区二区三区另类精品| 国产亚洲一区在线播放| 99伊人成综合| 免费中文日韩| 欧美一区二区三区免费观看| 欧美另类极品videosbest最新版本| 欧美午夜视频网站| 一区二区三区|亚洲午夜| 欧美激情一区二区在线 | 亚洲私人黄色宅男| 欧美va亚洲va日韩∨a综合色| 国产欧美日韩精品丝袜高跟鞋| 亚洲精品久久久蜜桃| 看欧美日韩国产| 久久久噜噜噜久久中文字免| 国产精品系列在线播放| 欧美亚洲网站| 西瓜成人精品人成网站| 国产精品综合久久久| 午夜视频一区在线观看| 亚洲午夜羞羞片| 国产伦精品一区| 久久男女视频| 久久看片网站| 亚洲激情一区| 亚洲视频在线观看一区| 国产欧美日韩另类视频免费观看| 欧美一区精品| 欧美凹凸一区二区三区视频| 亚洲精一区二区三区| 一本色道久久综合亚洲精品不卡 | 亚洲天堂男人| 加勒比av一区二区| 亚洲欧洲三级电影| 国产精品蜜臀在线观看| 久久av老司机精品网站导航| 欧美中文字幕在线观看| 亚洲美女免费精品视频在线观看| 亚洲视频在线观看网站| 亚洲欧洲综合另类在线| 亚洲欧美影院| 美女精品网站| 毛片基地黄久久久久久天堂| 欧美丝袜一区二区三区| 麻豆成人精品| 黄色在线成人| 久久精品国产69国产精品亚洲| 亚洲精品社区| 欧美刺激午夜性久久久久久久| 久久久久亚洲综合| 国产在线精品一区二区中文| 亚洲色诱最新| 性欧美大战久久久久久久久| 欧美日韩国产电影| 亚洲乱码国产乱码精品精98午夜 | 久久精品久久99精品久久| 欧美在线日韩| 合欧美一区二区三区| 欧美一级理论片| 久久久久久一区二区三区| 黄色免费成人| 欧美国产日韩在线观看| 亚洲精品午夜精品| 欧美淫片网站| 亚洲国产专区校园欧美| 欧美精品亚洲一区二区在线播放| 亚洲精品孕妇| 欧美综合77777色婷婷| 一区二区亚洲欧洲国产日韩| 久久综合网hezyo| 一本色道久久88精品综合| 欧美中文字幕在线| 亚洲区欧美区| 国产精品久久久一区二区| 久久国产精品久久w女人spa| 亚洲国产老妈| 久久视频在线免费观看| 欧美理论大片| 久热精品在线| 亚洲欧美高清| av成人手机在线| 亚洲国产一区二区三区青草影视 | 欧美福利一区| 欧美一级视频精品观看| 日韩亚洲欧美中文三级| 久久久人成影片一区二区三区| 日韩亚洲成人av在线| 在线欧美日韩国产| 国产视频自拍一区| 国产精品综合| 国产农村妇女毛片精品久久莱园子 | 午夜日韩福利| 亚洲中字黄色| 午夜精品一区二区三区电影天堂| 亚洲久久视频| 亚洲午夜久久久| 亚洲一区二区四区| 午夜精品久久久久久99热| 午夜亚洲视频| 久久亚洲欧洲| 亚洲国产精品一区二区www在线| 欧美电影免费观看大全| 亚洲高清不卡av| 中日韩美女免费视频网站在线观看| 一区二区日韩伦理片| 亚洲伊人伊色伊影伊综合网| 亚洲影视在线播放| 久久久久亚洲综合| 欧美日韩一区在线观看| 国内精品视频一区| 亚洲图片在区色| 久久综合九色综合久99| 亚洲日本va午夜在线电影| 亚洲视频免费在线观看| 香蕉免费一区二区三区在线观看| 久久久久久网址| 一本大道av伊人久久综合| 欧美国产日产韩国视频| 久久激情中文| 中文亚洲视频在线| 亚洲欧美日韩国产中文在线| 国产精品日日摸夜夜添夜夜av| 久久精品综合| 欧美在线播放视频| 9人人澡人人爽人人精品| 久久久精品国产免大香伊| 国内不卡一区二区三区| 欧美日韩一区二区视频在线 | 国产婷婷色综合av蜜臀av | 久久久久久久综合日本| 亚洲国产另类 国产精品国产免费| 国产一区二区三区四区老人| 亚洲一区二区在线视频| 亚洲大胆女人| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产酒店精品激情| 久久精品国产清高在天天线| 亚洲一区二区在线| 国产在线视频不卡二| 久久久精品一区| 久久成人精品一区二区三区| 国产亚洲人成a一在线v站| 久久精品亚洲精品| 亚洲破处大片| 亚洲午夜精品视频| 亚洲精品美女在线观看播放| 久久精品国产久精国产一老狼| 一本色道**综合亚洲精品蜜桃冫 | 欧美成人免费在线观看| 免费日韩视频| 亚洲永久精品国产| 欧美午夜精品久久久久久人妖| 欧美调教vk| 欧美一级久久久| 久久久久九九视频| 日韩网站在线观看| 欧美亚洲在线视频| 亚洲伦理在线| 午夜精品久久久久久久久久久久| 伊人久久久大香线蕉综合直播| 蜜桃av一区二区在线观看| 欧美久久在线| 欧美成人免费全部观看天天性色| 欧美揉bbbbb揉bbbbb| 女主播福利一区| 国产精品日韩在线播放| 亚洲国产精品高清久久久| 狠狠做深爱婷婷久久综合一区| 日韩视频不卡中文| 亚洲国产清纯| 免费中文日韩| 亚洲激情另类| 一本大道久久a久久精二百| 欧美影院成人| 久久免费高清| 激情成人综合| 久久久久网址|