C 在函式宣告時,後面跟個const是什麼意思?

2021-07-16 13:03:08 字數 1435 閱讀 6570

c++在函式宣告時,後面跟個const是什麼意思?

如:有下面的函式宣告:

double d() const;

其中的「const「有什麼用?是什麼意思?請舉例說明下什麼時候用這種形式?

謝謝!!!

weixin

weibo

qzone

lyq_boy

|瀏覽 11596 次

2012-12-24 13:51

2015-06-04 08:14

最佳答案

非靜態成員函式後面加const(加到非成員函式或靜態成員後面會產生編譯錯誤),表示成員函式隱含傳入的this指標為 const指標,決定了在該成員函式中,任意修改它所在的類的成員的操作都是不允許的(因為隱含了對this指標的const引用);唯一的例外是對於 mutable修飾的成員。加了const的成員函式可以被非const物件和const物件呼叫,但不加const的成員函式只能被非const物件調 用。例如:

class a

int geta() const

int geta()

int seta(int a) const

int seta(int a)

}; a a1;

const a a2;

int t;

t = a1.geta();

t = a1.geta();

t = a2.geta();

t = a2.geta(); //a2是const物件,呼叫非const成員函式產生編譯錯誤。

本回答由

電腦網路分類達人 董輝推薦

贊1

踩1

韌勁9

採納率:64% 擅長: 數學問道

這兒的const就是說這個函式操作不會對變數或是物件之類的值有影響 比如你有乙個human類 你現在要得到某個human類物件a的age 那麼肯定是不會因為你想得到這個值而改變了age的大小 對吧 那麼你就可以寫乙個函式int getage()const這樣就好 這麼做是為了防止你在函式中對不應該在這裡改變的量不小心進行了改變

本回答被提問者採納

熱心網友

|2012-12-24 14:33

贊132

踩0

const修飾說明它是乙個常量,它的值是不能被修改的。沒有什麼地方是必須要用的,你只要覺得這個數字你不會改變就可以用。一般在函式傳遞引數中用的比較多,你可以看看c語言的庫函式引數中很多都是用const修飾的。

比如字串拷貝的宣告函式char *strcpy(char *dest,const char *src); 後邊的形參用了const修飾,在函式定義中src的值就不能被改變,dest的值就可以被改變,也是一種提示

本回答被網友採納

C 中函式後面跟const

問題 c void display const 中的const是什麼意思?簡答 意思是除了表明了mutable的成員變數以外 該類的其他的成員變數在這個函式內一律不能修改。詳細 加const表明,該函式只能是唯讀的,不能修改私有變數的值。加強安全性。給隱含的this指標加const,表示這個this...

c 中成員函式宣告時const得作用

1.作為寫了幾道演算法題的人都知道,const和內建或自定義型別一起宣告時,表示的是常量不可改變。比如像下面這樣。const int n 122222 2.在此const和成員函式宣告結合到一起表示的是什麼.同時也是引入this,就相當於this bookno 看下面這 假設booknos是stri...

C 類的成員變數在宣告時初始化

能。可能早先的版本不能,但是c 11標準下能。有人說在宣告的時候初始化相當於在建構函式中初始化,其實不是的,成員變數初始化的順序為 先進行宣告時初始化,然後進行初始化列表初始化,最後進行建構函式初始化,如下 另外初始化列表中初始化的順序是和變數宣告的順序一樣,而與列表中的順序無關 include u...