在類的成員函式後面加const是什麼意思

時間 2021-08-30 10:38:45

1樓:烈日門主

const是一個c++語言的關鍵字,它限定一個變數不允許被改變。使用const在一定程度上可以提高程式的安全性和可靠性。另外,在**別人**的時候,清晰理解const所起的作用,對理解對方的程式也有一些幫助

2樓:匿名使用者

每個類成員都有隱含的指向呼叫成員函式的類物件的this指標,成員函式形參表後的const修飾的是this,也就是

classname cn;

const classname *cp=&cn;

這個this就相當於cp,是『自認為』指向const物件的指標,因此該const成員函式不能對物件進行寫操作

3樓:暗影之王

常型別是指使用型別修飾符const說明的型別,常型別的變數或物件的值是不能被更新的。使用const在一定程度上可以提高程式的安全性和可靠性。另外,在**別人**的時候,清晰理解const所起的作用,對理解對方的程式也有一些幫助。

另外const在其他程式語言中也有出現,如c++、php5、c#.net、hc08 c。

作用:(1)可以定義const常量,具有不可變性。

(2)便於進行型別檢查,使編譯器對處理內容有更多瞭解,消除了一些隱患。

(3)可以避免意義模糊的數字出現,同樣可以很方便地進行引數的調整和修改。

(4)可以保護被修飾的東西,防止意外的修改,增強程式的健壯性。 還是上面的例子,如果在函式體內修改了i,編譯器就會報錯;

(5) 可以節省空間,避免不必要的記憶體分配。

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

4樓:幻翼高達

c++在函式宣告時,後面跟個const是限定函式型別為常成員函式, 常成員函式是指不能改變成員變數值的函式。

例如「double d() const;」,其中的其中的「const」限定了d()函式中不能有任何改變其所屬物件成員變數值的功能,如果有則會在編譯階段就報錯。

它的主要作用就是能使成員函式的意義更加清楚,我們可在不改變物件的成員函式的函式原型中加上const說明。在需要增加可讀性和減少邏輯出錯的情況下,就可以用這種形式。

我們定義的類的成員函式中,常常有一些成員函式不改變類的資料成員,也就是說,這些函式是"只讀"函式,而有一些函式要修改類資料成員的值。如果把不改變資料成員的函式都加上const關鍵字進行標識,顯然,可提高程式的可讀性。

另外,它還能提高程式的可靠性,已定義成const的成員函式,一旦企圖修改資料成員的值,則編譯器按錯誤處理。

5樓:釗鉼

const是一個c語言(ansi c)的關鍵字,具有著舉足輕重的地位。它限定一個變數不允許被改變,產生靜態作用。

使用const在一定程度上可以提高程式的安全性和可靠性。另外,在**別人**的時候,清晰理解const所起的作用,對理解對方的程式也有一定幫助。另外const在其它程式語言中也有出現,例如pascal、c++、php5、b#.

net、hc08 c、c#等。

const的作用:

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

2、便於進行型別檢查,使編譯器對處理內容有更多瞭解,消除了一些隱患。

3、可以避免意義模糊的數字出現,同樣可以很方便地進行引數的調整和修改。 同巨集定義一樣,可以做到不變則已,一變都變!

c++是c語言的繼承,它既可以進行c語言的過程化程式設計,又可以進行以抽象資料型別為特點的基於物件的程式設計,還可以進行以繼承和多型為特點的物件導向的程式設計。c++擅長物件導向程式設計的同時,還可以進行基於過程的程式設計,因而c++就適應的問題規模而論,大小由之。

c++不僅擁有計算機高效執行的實用性特徵,同時還致力於提高大規模程式的程式設計質量與程式設計語言的問題描述能力。

6樓:匿名使用者

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

7樓:韌勁

非靜態成員

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

class a

int geta() const

int geta()

int seta(int a) constint 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成員函式產生編譯錯誤。

8樓:淼淼

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

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

c++中的類成員函式後面的const是什麼意思??

9樓:匿名使用者

後面的const用來表示不能夠在函式內修改該類的成員變數。

10樓:使命聽一聽召喚

修飾類的成員函式,表示該函式不能修改物件資料成員的值。

並且const物件只能呼叫const成員函式。

11樓:紫色學習

c++中的類成員函式後面的const是用來表示不能夠在函式內修改該類的成員版變數。

c++是在權c語言的基礎上開發的一種通用程式語言,應用廣泛。c++支援多種程式設計正規化 --物件導向程式設計、泛型程式設計和過程化程式設計。最新正式標準c++14於2023年8月18日公佈。

其程式設計領域眾廣,常用於系統開發,引擎開發等應用領域,是至今為止最受廣大程式設計師受用的最強大程式語言之一,支援類:類、封裝、過載等特性!

c++ 函式定義末尾加個const是什麼意思?

12樓:匿名使用者

這個const是說明在這個成員函式中的this指標是隻讀的,即不能修改該類的成員變數的值。

13樓:韌勁

const用在成員函式後 主要是針對類的const物件如:

class text

void print(void)

private:

int k;

};const text a;

//上面定義了類text的一常量物件

int main(void)

const物件只能呼叫const成員函式。

const物件的值不能被修改,在const成員函式中修改const物件資料成員的值是語法錯誤

在const函式中呼叫非const成員函式是語法錯誤這是把整個函式修飾為const,意思是「函式體內不能對成員資料做任何改動」。如果你宣告這個類的一個const例項,那麼它就只能呼叫有const修飾的函式。

14樓:匿名使用者

確保資料是靜態的,不可更新的。

c 類中成員函式的問題

1.你這基礎實在薄弱,基本概念都還沒懂 2.下面的void m f1 m m 是對類裡面 static void f1 m m 函式的實現。m m 的意思定義一個m的物件m.也就是這個函式的引數必須是一個m的物件。3.m p 5 q 10 這裡的定義兩個m物件 括號裡的值是傳遞給建構函式的,即呼叫此...

「在成員函式中實現自加」的問題,一直想不明白函式句子,求解

你的 裡沒有呼叫void set int x num i 這個會呼叫建構函式num 那麼i.n就是1了 這個函式好像沒呼叫哦!c 中,定義一個類的時候有些 在成員函式的後面加了一個分號,結果編譯也能通過,不加分號也是正確 加分號的是成員函式宣告,在類外部有函式實現 的。不加分號的是直接給出成員函式 ...

c 中解構函式在成員函式中的呼叫問題

因為第二種方法你沒有定義拷貝建構函式,所以ab operator int a 執行完之後,返回的是return this,會在記憶體中再次構造一個ab的物件,並且把 this指向的物件按位拷貝給這個物件,建立這個物件的時候,會用到x new int 2 分配一段記憶體。由於有a 3 會再次呼叫按位拷...