第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

當(dāng)C++在函數(shù)聲明時(shí),后面跟個(gè)const是什么意思?有什么意義?

當(dāng)C++在函數(shù)聲明時(shí),后面跟個(gè)const是什么意思?有什么意義?

C++ C
白豬掌柜的 2021-11-25 21:15:47
如:有下面的函數(shù)聲明:double d() const;其中的“const“有什么用?是什么意思?請(qǐng)舉例說(shuō)明下什么時(shí)候用這種形式?謝謝?。?!
查看完整描述

3 回答

?
千萬(wàn)里不及你

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超9個(gè)贊

C++在函數(shù)聲明時(shí),后面跟個(gè)const是限定函數(shù)類(lèi)型為常成員函數(shù), 常成員函數(shù)是指不能改變成員變量值的函數(shù)。

例如“double d() const;”,其中的其中的“const”限定了d()函數(shù)中不能有任何改變其所屬對(duì)象成員變量值的功能,如果有則會(huì)在編譯階段就報(bào)錯(cuò)。

它的主要作用就是能使成員函數(shù)的意義更加清楚,我們可在不改變對(duì)象的成員函數(shù)的函數(shù)原型中加上const說(shuō)明。在需要增加可讀性和減少邏輯出錯(cuò)的情況下,就可以用這種形式。

擴(kuò)展資料:

簡(jiǎn)單介紹

一、const與define。兩者都可以用來(lái)定義常量,但是const定義時(shí),定義了常量的類(lèi)型,所以更精確一些。#define只是簡(jiǎn)單的文本替換,除了可以定義常量外,還可以用來(lái)定義一些簡(jiǎn)單的函數(shù),有點(diǎn)類(lèi)似內(nèi)聯(lián)函數(shù)(Inline)。const和define定義的常量可以放在頭文件里面。(小注:可以多次聲明,但只能定義一次)

二、》》const與指針和引用。

1、const與指針。

先來(lái)看看下面的幾種定義:

int me;

const int* p1 = &me;//p1可變,*p1不可變,此時(shí)不能用*p1來(lái)修改,但是p1可以轉(zhuǎn)向

int* const p2 = &me;//p2不可變,*p2可變,此時(shí)允許*p2來(lái)修改其值,但是p2不能轉(zhuǎn)向。

const int* const p3 = &me;//p3不可變,*p3也不可變,此時(shí)不能用*p3來(lái)修改其值。

2、指針和引用的區(qū)別很簡(jiǎn)單,就是引用更簡(jiǎn)潔,更安全。因?yàn)橐寐暶鲿r(shí)必須初始化。 引用更接近c(diǎn)onst指針,一旦與某個(gè)變量關(guān)聯(lián),就將一直效忠于他。

3、const指針可以接受const和非const地址,但是非const指針只能接受非const地址。所以const指針的能力更強(qiáng)一些,所以盡量多用const指針,這是一種習(xí)慣。



查看完整回答
反對(duì) 回復(fù) 2021-11-29
?
拉風(fēng)的咖菲貓

TA貢獻(xiàn)1995條經(jīng)驗(yàn) 獲得超2個(gè)贊

const是一個(gè)C語(yǔ)言(ANSI C)的關(guān)鍵字,具有著舉足輕重的地位。它限定一個(gè)變量不允許被改變,產(chǎn)生靜態(tài)作用。

使用const在一定程度上可以提高程序的安全性和可靠性。另外,在觀看別人代碼的時(shí)候,清晰理解const所起的作用,對(duì)理解對(duì)方的程序也有一定幫助。另外CONST在其它編程語(yǔ)言中也有出現(xiàn),例如Pascal、C++、PHP5、B#.net、HC08 C、C#等。

const的作用:

1、可以定義const常量,具有不可變性。 

例如:const int Max=100; Max++會(huì)產(chǎn)生錯(cuò)誤; 

2、便于進(jìn)行類(lèi)型檢查,使編譯器對(duì)處理內(nèi)容有更多了解,消除了一些隱患。

例如: void f(const int i) { .........} 編譯器就會(huì)知道i是一個(gè)常量,不允許修改; 

3、可以避免意義模糊的數(shù)字出現(xiàn),同樣可以很方便地進(jìn)行參數(shù)的調(diào)整和修改。 同宏定義一樣,可以做到不變則已,一變都變!

如1中,如果想修改Max的內(nèi)容,只需要它修改成:const int Max=you want;即可!

4、可以保護(hù)被修飾的東西,防止意外的修改,增強(qiáng)程序的健壯性。 還是上面的例子,如果在函數(shù)體內(nèi)修改了i,編譯器就會(huì)報(bào)錯(cuò); 

例如: void f(const int i) { i=10;//error! } 

5、可以節(jié)省空間,避免不必要的內(nèi)存分配。

例如: 

#define PI 3.14159 //常量宏 

const double Pi=3.14159; //此時(shí)并未將Pi放入ROM中 ...... 

6、提高了效率。 

編譯器通常不為普通const常量分配存儲(chǔ)空間,而是將它們保存在符號(hào)表中,這使得它成為一個(gè)編譯期間的常量,沒(méi)有了存儲(chǔ)與讀內(nèi)存的操作,使得它的效率也很高。

擴(kuò)展資料:

const 的時(shí)候都會(huì)混淆它與 define 的區(qū)別。從功能上說(shuō)它們確實(shí)很像,但它們又有明顯的不同:

1、define是預(yù)編譯指令,而const是普通變量的定義。define定義的宏是在預(yù)處理階段展開(kāi)的,而const定義的只讀變量是在編譯運(yùn)行階段使用的。

2、const定義的是變量,而define定義的是常量。define定義的宏在編譯后就不存在了,它不占用內(nèi)存,因?yàn)樗皇亲兞?,系統(tǒng)只會(huì)給變量分配內(nèi)存。

但const定義的常變量本質(zhì)上仍然是一個(gè)變量,具有變量的基本屬性,有類(lèi)型、占用存儲(chǔ)單元??梢哉f(shuō),常變量是有名字的不變量,而常量是沒(méi)有名字的。

有名字就便于在程序中被引用,所以從使用的角度看,除了不能作為數(shù)組的長(zhǎng)度,用const定義的常變量具有宏的優(yōu)點(diǎn),而且使用更方便。所以編程時(shí)在使用const和define都可以的情況下盡量使用常變量來(lái)取代宏。

3、const定義的是變量,而宏定義的是常量,所以const定義的對(duì)象有數(shù)據(jù)類(lèi)型,而宏定義的對(duì)象沒(méi)有數(shù)據(jù)類(lèi)型。所以編譯器可以對(duì)前者進(jìn)行類(lèi)型安全檢查,而對(duì)后者只是機(jī)械地進(jìn)行字符替換,沒(méi)有類(lèi)型安全檢查。這樣就很容易出問(wèn)題,即“邊際問(wèn)題”或者說(shuō)是“括號(hào)問(wèn)題”。



查看完整回答
反對(duì) 回復(fù) 2021-11-29
?
侃侃無(wú)極

TA貢獻(xiàn)2051條經(jīng)驗(yàn) 獲得超10個(gè)贊

const Stock land =Stock("hyd");
land.show();
land 是常量,但是類(lèi)成員函數(shù) show 無(wú)法保證不修改 land,所以編譯器將拒絕執(zhí)行該段代碼。除非你能保證 show 像 const 函數(shù)一樣,但這需要另外一種語(yǔ)法,即:
void show() const; (聲明)
void Stock::show() const {}; (定義)

const 的用法在 C++ 里是很有講究的 參考一下 《Effective C++》吧
以下摘自其中條款三
const 成員函數(shù)
將const 實(shí)施于成員函數(shù)的目的,是為了確認(rèn)該成員函數(shù)可作用于const 對(duì)象身上。這一類(lèi)成員函數(shù)之所以重要,基于兩個(gè)理由。
第一,它們使 class 接口比較容易被理解。這是因?yàn)椋弥膫€(gè)函數(shù)可以改動(dòng)對(duì)象內(nèi)容而哪個(gè)函數(shù)不行,很是重要。
第二,它們使"操作 const 對(duì)象"成為可能。這對(duì)編寫(xiě)高效代碼是個(gè)關(guān)鍵,因?yàn)槿鐥l款 20 所言,改善 C++ 程序效率的一個(gè)根本辦法是以 pass by reference-to-const 方式傳遞對(duì)象,而此技術(shù)可行的前提是,我們有 const 成員函數(shù)可用來(lái)處理取得(并經(jīng)修飾而成)的 const 對(duì)象。
簡(jiǎn)而言之 const 在這里是修飾 函數(shù) 的



查看完整回答
反對(duì) 回復(fù) 2021-11-29
  • 3 回答
  • 0 關(guān)注
  • 1533 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)