亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

求解釋~const在這里是什么意思?什么含義?

求解釋~const在這里是什么意思?什么含義?

紅顏莎娜 2021-11-24 21:15:29
void p(int x ,int y) const{i = x}它說程序會報錯,這是為什么?x能被賦值,i就不能?const在這個位置究竟是什么限制?限制大括號里面的變量都不能改變?還是都不能被賦值?
查看完整描述

3 回答

?
慕姐4208626

TA貢獻1852條經驗 獲得超7個贊

void p(int x ,int y) const,i未在函數體內定義,也不是參數,所以很明顯你這屬于類成員函數中const的使用 即限制函數類型,就是形如:void fun() const; 此類的將const放在函數體后。 這個時候const的含義是無法修改數據成員。例如有個私有成員area,而我們需要使用,可以定義函數void getarea();這個時候在函數后面加上const,就是void getarea() const;是很好的選擇,防止你不小心改變了area的值。
總的來說 如果一個成員函數的不會修改數據成員,那么最好將其聲明為const,因為const成員函數中不允許對數據成員進行修改,如果修改,編譯器將報錯,這大 大提高了程序的健壯性。

你這里i=x明顯試圖改變i的值,當然報錯了!
所以說定義const成員函數往往是不錯的選擇。因為我們定義的類的成員函數中,常常有一些成員函數不改變類的數據成員,也就是說,這些函數是"只讀"函數,而有一些函數要修改類數據成員的值。如果把不改變數據成員的函數都加上const關鍵字進行標識,顯然,可提高程序的可讀性。其實,它還能提高程序的可靠性,已定義成const的成員函數,一旦企圖修改數據成員的值,則編譯器按錯誤處理。


查看完整回答
反對 回復 2021-11-29
?
慕田峪4524236

TA貢獻1875條經驗 獲得超5個贊

函數帶const,說明這個函數是常成員函數,即是一個“只讀”函數,在函數體中不能直接或間接的更改數據成員的值,即自己不能更改,同時也不能調用那些能引起數據成員值變化的成員函數,只能調用const成員函數。i是不是數據成員啊。

查看完整回答
反對 回復 2021-11-29
?
慕姐8265434

TA貢獻1813條經驗 獲得超2個贊

const修飾函數
除函數內部變量,包括形參以及內部定義變量外,其他變量都無法修改值

查看完整回答
反對 回復 2021-11-29
  • 3 回答
  • 0 關注
  • 658 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號