C++ 常對象、常數據成員、常成員函數總結

常數據成員

  1. 常數據成員必須使用初始化列表初始化來初始化,並且不能被更新
  2. 常數據成員必須初始化

PS:類的數據成員使用初始化列表進行的初始化 才叫初始化,使用構造函數內部的語句初始化叫賦值

 

常對象

  1. 常對象可以調用常成員函數,不能調用非const成員函數;非const對象,可以調用普通成員函數和常成員函數
  2. 常對象成員函數不一定都是常成員函數,常對象的數據成員不一定都是數據成員
  3. 常對象一旦初始化,常對象的數據成員便不可允許修改
  4. 如果非要修改某個成員變量的話,

PS:定義常對象有兩種方法 1. const Point a  2.Point const a 兩者效果一樣

 

常成員函數

  1. 常成員函數不可更新對象的數據成員
  2. 常成員函數的const關鍵字可以被用於參與對重載函數的區分
  3. 通常非const成員需要定義一個const版本的重載函數,以便定義常對象時可以調用常成員函數(原因是常對象只能調用const成員函數)

如果常對象調用的常成員函數返回的是指向當前對象的指針(或返回的是當前對象),那麼此常成員函數的聲明的返回類型要加const,例如:

const Complex* fun();

const Complex* fun() const;

這兩個函數可以構成函數的重載

注意,如果是這樣

const Complex* fun();

Complex *fun();

這樣就構成不了重載,因爲函數的重載以參數個數 參數的類型 參數的順序爲標誌,而返回值類型不能作爲函數重載的標誌

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章