欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

CONST怎么在C/C++中使用-創(chuàng)新互聯(lián)

CONST怎么在C/C++中使用?相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

創(chuàng)新互聯(lián)建站制作網(wǎng)站網(wǎng)頁找三站合一網(wǎng)站制作公司,專注于網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì)、做網(wǎng)站,網(wǎng)站設(shè)計(jì),企業(yè)網(wǎng)站搭建,網(wǎng)站開發(fā),建網(wǎng)站業(yè)務(wù),680元做網(wǎng)站,已為1000多家服務(wù),創(chuàng)新互聯(lián)建站網(wǎng)站建設(shè)將一如既往的為我們的客戶提供最優(yōu)質(zhì)的網(wǎng)站建設(shè)、網(wǎng)絡(luò)營銷推廣服務(wù)!

1、修飾常量時(shí):

const int temp1; //temp1為常量,不可變
  int const temp2; //temp2為常量,不可變

2、修飾指針時(shí):

主要看const在*的前后,在前則指針指向的內(nèi)容為常量,在后則指針本身為常量;

const int *ptr;  //*ptr為常量;
  int const *ptr;  //*ptr為常量;
  int* const ptr;  //ptr為常量;
  const int * const ptr;  //*ptr、ptr均為常量;

3、const修飾類對(duì)象時(shí):

const修飾類對(duì)象時(shí),其對(duì)象中的任何成員都不能被修改。const修飾的對(duì)象,該對(duì)象的任何非const成員函數(shù)都不能調(diào)用該對(duì)象,因?yàn)槿魏畏莄onst成員函數(shù)都會(huì)有修改成員變量的可能。

class TEMP{
    void func1();
    void func2() const;
  }
  const TEMP temp;
  temp.func1(); //錯(cuò)誤;
  temp.func2(); //正確;

4、const修飾成員變量:

const修飾的成員變量不能被修改,同時(shí)只能在初始化列表中被初始化,因?yàn)槌A恐荒鼙怀跏蓟?,不能被賦值;

賦值是使用新值覆蓋舊值構(gòu)造函數(shù)是先為其開辟空間然后為其賦值,不是初始化;而初始化列表開辟空間和初始化是同時(shí)完成的,直接給與一個(gè)值,所以const成員變量一定要在初始化列表中完成。

class TEMP{
    const int val;      
    TEMP(int x)val(x){};  //只能在初始化列表中賦值;
  }

5、const修飾類的成員函數(shù)

const成員函數(shù)表示該成員函數(shù)不能修改類對(duì)象中的任何非const成員變量。一般const寫在函數(shù)的后面,形如:void func() const;

如果某個(gè)成員函數(shù)不會(huì)修改成員變量,那么最好將其聲明為const,因?yàn)閏onst成員函數(shù)不會(huì)對(duì)數(shù)據(jù)進(jìn)行修改,如果修改,編譯器將會(huì)報(bào)錯(cuò);

class TEMP{
    void func()const; //常成員函數(shù),不能修改對(duì)象中的成員變量,也不能調(diào)用類中任何非const成員函數(shù);
  }

對(duì)于const類對(duì)象,只能調(diào)用類中的const成員函數(shù),所以const修飾成員函數(shù)的作用主要就是限制對(duì)const對(duì)象的使用。

6、const在函數(shù)聲明中的使用:

在函數(shù)聲明中,const可以修飾函數(shù)的返回值,也可以修飾具體某一個(gè)形參;

修飾形參時(shí),用相應(yīng)的變量初始化const常量,在函數(shù)體內(nèi),按照const所修飾的部分進(jìn)行常量化;

修飾函數(shù)返回值時(shí),一般情況下,const修飾返回值多用于操作符的重載。通常不建議用const修飾函數(shù)的返回值類型為某個(gè)對(duì)象或某個(gè)對(duì)象引用的情況;

7、const常量與define宏定義的區(qū)別:

1)處理階段不同:

define是在預(yù)處理階段,define常量從未被編譯器看見,因?yàn)樵陬A(yù)處理截?cái)嗑鸵呀?jīng)替換了;

const常量在編譯階段使用。

2)類型和安全檢查不同

define沒有類型,不做任何檢查,僅僅是字符替換,沒有類型安全檢查,并且在字符替換時(shí)可能會(huì)產(chǎn)生意料不到的錯(cuò)誤

const常量有明確的類型,在編譯階段會(huì)進(jìn)行類型檢查;

3)存儲(chǔ)方式不同

define是字符替換,有多少地方使用,就會(huì)替換多少次,不會(huì)分配內(nèi)存;

編譯器通常不會(huì)為const常量分配空間,只是將它們保存在符號(hào)表內(nèi),使他們成為一個(gè)編譯期間的一個(gè)常量,沒有讀取內(nèi)存的操作,效率也很高;

8、mutable關(guān)鍵字:

在C++中,mutable是為了突破const的限制而設(shè)置的。被mutable修飾的變量,將永遠(yuǎn)處于可變的狀態(tài),即使在一個(gè)const函數(shù)中,甚至結(jié)構(gòu)體變量或者類對(duì)象為const,其mutable成員也可以被修改:

class ST { 
    public:
    int a; 
    mutable int showCount; 
    void Show()const; 
  };
  void ST::Show()const{ 
    //a=1;//錯(cuò)誤,不能在const成員函數(shù)中修改普通變量 
    showCount++;//正確 
  }

mutable只能修飾非靜態(tài)數(shù)據(jù)成員;

9、const_cast:

用于修改類型的const或volatile屬性。

用法:

:const_cast<type_id> (expression)

該運(yùn)算符用來修改類型的const或volatile屬性。除了const 或volatile修飾之外, type_id和expression的類型是一樣的。

1)常量指針被轉(zhuǎn)化成非常量的指針,并且仍然指向原來的對(duì)象;

2)常量引用被轉(zhuǎn)換成非常量的引用,并且仍然指向原來的對(duì)象;

3)const_cast一般用于修改底指針。如const char *p形式。
 
建議:

1、應(yīng)該盡可能使用const,它會(huì)允許你指定一個(gè)語義約束(也就是指定一個(gè)不能被改動(dòng)的對(duì)象),而編譯器會(huì)強(qiáng)制實(shí)施這項(xiàng)約束。它允許你告訴編譯器和其他程序員某值應(yīng)該保持不變。

2、將某些東西聲明為const可幫助編譯器偵測(cè)出錯(cuò)誤用法。const可被施加于任何作用域內(nèi)的對(duì)象、函數(shù)參數(shù)、函數(shù)返回類型、成員函數(shù)本體;

3、編譯器強(qiáng)制實(shí)施bitwise constness,但你編寫程序時(shí)應(yīng)該使用“概念上的常量性”(conceptual constness);

4、當(dāng)const和non_const成員函數(shù)有著實(shí)質(zhì)等價(jià)的實(shí)現(xiàn)時(shí),令non-const版本調(diào)用const版本可避免代碼重復(fù);

看完上述內(nèi)容,你們掌握CONST怎么在C/C++中使用的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝各位的閱讀!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站aaarwkj.com,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

當(dāng)前文章:CONST怎么在C/C++中使用-創(chuàng)新互聯(lián)
文章鏈接:http://aaarwkj.com/article42/gdjec.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè)App設(shè)計(jì)、軟件開發(fā)、標(biāo)簽優(yōu)化、電子商務(wù)

廣告

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

綿陽服務(wù)器托管
97国产精品视频在线观看| 十八岁毛片一区二区三区| 国产一区二区三区在线观看俏佳人| 91亚洲精品综合久久| 日本精品中文字幕人妻| 日韩亚洲欧美另类精品| 亚洲成年人黄色小说网站 | 看看永久成人免费视频| 亚洲精品成人一区二区| 在线一区二区三区高清视频| 亚洲av一本岛在线播放| 国产免费播放一区二区三区| 青青草原在线观看网站| 91精品国产自产永久在线| 色婷婷国产精品久久包臀| 国内精品久久久国产盗摄| 国产精品自偷自偷自偷| 男女真人啪啪视频免费| 91精品国产91久久综合桃花| 久草午夜福利视频免费观看| 最近中文字幕免费手机版| 国产午夜三级视频在线观看| 久久久久久狠狠亚洲综合| 日韩电影网国产精品| 日韩精品熟妻人女亚洲一区| 在线观看免费视频成人播放| 日韩成人一级片在线观看| 亚洲性视频日韩性视频| 亚洲狠狠爱一区二区三区| 日本人妻在线不卡视频| 婷婷色中文字幕综合在线| 亚洲欧美日韩不卡视频| 久久女同互慰一区二区三区| 精品欧美日韩国产一区| 国产伦奸在线播放免费| 色91精品在线观看剧情| 国产老妇伦国产熟女高清| 免费观看国产性生活片| 日韩精品视频一二三区| 国产精品一区二区三区乱色| 天天精品国产av九九久久久|