怎么淺析C++中的C++關(guān)鍵字

怎么淺析C++中的C++關(guān)鍵字,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

創(chuàng)新互聯(lián)自2013年創(chuàng)立以來(lái),是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元天津做網(wǎng)站,已為上家服務(wù),為天津各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話(huà):13518219792

在C++語(yǔ)言中,然后就總結(jié)了許多C++關(guān)鍵字,如果不使用常引用、指針,則須用const_cast<>進(jìn)行轉(zhuǎn),指向字符char的常指針經(jīng)常用來(lái)表示字符串,像windows中的LPCSTR就是const char *。

1. 修飾常量

最基本的用法,用const修飾一個(gè)變量,表示這是一個(gè)常量,這種用法可以代替C語(yǔ)言里面的宏定義。注意要在聲明時(shí)初始化,如果是類(lèi)的數(shù)據(jù)成員,則在構(gòu)造函數(shù)的初始化列表中初始化。

const int a=999;    //定義了常量a,代替宏定義  //const int b;        //錯(cuò)誤,常量定義時(shí)要初始化  extern const int c;    //外部定義的常量不用初始化了  int const d=0;        //與const int等價(jià),寫(xiě)法習(xí)慣不同而已  const long e=0;        //同理,把int換成char、long、類(lèi)是一樣的   class Cls  {  public:      Cls(int a,int b):_a(a)    //常數(shù)成員要在初始化列表初始化      {          _b=b;      }  private:      const int _a;      int _b;  };

2. 修飾引用,指針

對(duì)一個(gè)C++關(guān)鍵字的引用或指針要用常指針,也就是不能修改所引用、指向的變量。如果不使用常引用、指針,則須用const_cast<>進(jìn)行轉(zhuǎn)換。指向字符char的常指針經(jīng)常用來(lái)表示字符串,像windows中的LPCSTR就是const char *。

const int &g=a;            //a的內(nèi)容不能改,所以g(a的引用)也是const  //int &h=a;            //錯(cuò)誤  int &i=const_cast<int&>(a);    //使用const_cast<>()把常量轉(zhuǎn)成非常量  int const &j=a;            //與const int &等價(jià),寫(xiě)法習(xí)慣不同而已   const int *k=&a;        //a的內(nèi)容不能改,所以k(a的指針)也是const  int const *l=&a;        //與const int *等價(jià),寫(xiě)法習(xí)慣不同而已  //int *m=&a;            //錯(cuò)誤  const char *n="string";        //字符串“string”內(nèi)部字符不能改變了  char *o="string2";        //字符串“string2”可以修改

3. 修飾對(duì)象

如果修飾的是一個(gè)對(duì)象,則表示該對(duì)象的數(shù)據(jù)成員均為常量,并且只能調(diào)用該對(duì)象的常成員函數(shù),這一點(diǎn)在后面解釋。綜合1、2、3條得出,const修飾符表示所修飾的內(nèi)存區(qū)域被上了鎖,不能修改。

對(duì)一個(gè)對(duì)象的常引用經(jīng)常用來(lái)函數(shù)傳參,當(dāng)函數(shù)參數(shù)為對(duì)象是,直接按值傳參會(huì)調(diào)用對(duì)象拷貝構(gòu)造函數(shù),復(fù)制對(duì)象,對(duì)程序效率造成影響,所以一般按引用傳參,為了不改變傳入的參數(shù),要加const表示是常引用。

const int &g=a;            //a的內(nèi)容不能改,所以g(a的引用)也是const  //int &h=a;            //錯(cuò)誤  int &i=const_cast<int&>(a);    //使用const_cast<>()把常量轉(zhuǎn)成非常量  int const &j=a;            //與const int &等價(jià),寫(xiě)法習(xí)慣不同而已   const int *k=&a;        //a的內(nèi)容不能改,所以k(a的指針)也是const  int const *l=&a;        //與const int *等價(jià),寫(xiě)法習(xí)慣不同而已  //int *m=&a;            //錯(cuò)誤  const char *n="string";        //字符串“string”內(nèi)部字符不能改變了  char *o="string2";        //字符串“string2”可以修改

4. 另外一種const修飾指針的方法

也就是著名的const char *和char * const的區(qū)別的問(wèn)題。const char *前面說(shuō)過(guò),意思是常指針,char*所指的內(nèi)存區(qū)域不能被修改,用來(lái)表示字符串。而char * const的意思指針?biāo)赶虻奈恢貌荒苄薷?,C++關(guān)鍵字也就是該指針不能指向其他內(nèi)存區(qū)域了,這和引用很像,char * const相當(dāng)于char &,所以常引用const char &相當(dāng)于const char * const,也就是指針指向誰(shuí)不可變,指針指向的內(nèi)容也不可變。注意const是寫(xiě)在了*的前面還是后面,這是***區(qū)別,char const *的意思和const char *是一樣的。

看完上述內(nèi)容,你們掌握怎么淺析C++中的C++關(guān)鍵字的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

標(biāo)題名稱(chēng):怎么淺析C++中的C++關(guān)鍵字
網(wǎng)站鏈接:http://bm7419.com/article46/igddeg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、建站公司、網(wǎng)站建設(shè)、網(wǎng)站改版、定制開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作