為什麼類裡要有const函式,const函式在類裡有什麼作用

2021-03-22 03:06:49 字數 1871 閱讀 1731

1樓:匿名使用者

有兩種const函式,宣告如下:

1、const t func();

2、t func() const;

第一種表示返回的是const的型別,也即返回的值不能作為左值,樓主懂的。

第二種表示該成員函式不能修改其成員變數的值,即該函式不能改變任何該類的非靜態成員的值。

2樓:匿名使用者

const是一個c語言的關鍵字,它限定一個變數不允許被改變,產生靜態作用。使用const在一定程度上可以提高程式的安全性和可靠性。另外,在**別

人**的時候,清晰理解const所起的作用,對理解對方的程式也有一些幫助。另外const在其他程式語言中也有出現,如c++、php5、

c#.***、hc08 c。

主要作用

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

例如:const int max=100; max++會產生錯誤;

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

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

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

如(1)中,如果想修改max的內容,只需要:const int max=you want;即可!

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

例如: void f(const int i)

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

#define pi 3.14159 //常量巨集

const double pi=3.14159; //此時並未將pi放入ram中 ......

double i=pi; //此時為pi分配記憶體,以後不再分配!

double i=pi; //編譯期間進行巨集替換,分配記憶體

double j=pi; //沒有記憶體分配

double j=pi; //再進行巨集替換,又一次分配記憶體!

const定義常量從彙編的角度來看,只是給出了對應的記憶體地址,而不是像#define一樣給出的是立即數,所以,const定義的常量在程式執行過程中只有一份拷貝,而#define定義的常量在記憶體中有若干份拷貝。

(6) 提高了效率。

編譯器通常不為普通const常量分配儲存空間,而是將它們儲存在符號表中,這使得它成為一個編譯期間的常量,沒有了儲存與讀記憶體的操作,使得它的效率也很高。

3樓:匿名使用者

const 對於類的封裝是很有好處的,要知道用const定義後,其值是不能隨便改變的,相當於一個常量。如果類中的成員能隨便改變其屬性,類就會很混亂,**的重複利用就很差,不利於程式設計。

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

4樓:匿名使用者

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

5樓:使命聽一聽召喚

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

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

6樓:紫色學習

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

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

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

C 中在基類裡宣告為const的純虛擬函式在派生類裡的同名函

必須,函式是否為const也是過載條件之一比如在一個類裡,存在重名函式 void print void print const 那麼是合法的過載 但是如果是 int print const int print 則不是合法過載 因此想要實體化circle類,必須實現一個形如double print c...

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

c 在函式宣告時,後面跟個const是限定函式型別為常成員函式,常成員函式是指不能改變成員變數值的函式。例如 double d const 其中的其中的 const 限定了d 函式中不能有任何改變其所屬物件成員變數值的功能,如果有則會在編譯階段就報錯。它的主要作用就是能使成員函式的意義更加清楚,我們...

c類基金為什麼不能長期持有,基金a類和c類有什麼區別

費用收取機制。c類 是比較適合短期投資的,其費用結構為銷售服務費和贖回費,銷售服務費是會隨著你持有 份額的時間增長而增加的。定投是從長期的進行規劃的,所以通常需要一個較長的期限才可以體現出 定投的作用。需要注意的一點是這裡較長期限是指一年以上。通過計算比較後可以得到費用變化的拐點大概在九個月左右,如...