- 用const修飾的聲明數據成員稱爲常數據成員
- 用const修飾的聲明成員函數稱爲常成員函數
- 用const修飾的定義對象稱爲常對象
(一)用const修飾的聲明數據成員稱爲常數據成員
有兩種聲明形式:
const int cctwl;int const cctwl;
不能省略數據類型,可以添加 public private等訪問控制符。
說明:
- 任何函數都不能對常數據成員賦值。
- 構造函數對常數據成員進行初始化時也只能通過初始化列表進行。
- 常數據成員在初始化時必須賦值或稱其必須初始化.
- 如果類有多個默認構造函數必須都初始化常數據成員。
通過下面例子來理解常數據成員以上4點。
A、請指出下面程序的錯誤
錯誤一:不能對常數據成員在類中初始化、要通過類的構造函數,只有靜態常量才能這樣初始化。
錯誤二:沒有合適的默認構造函數可用。因爲有常量cctwl沒有初始化必須初始化所有常數據成員。
更正後結果如下:
B、多個構造函數下的常數據成員
請指出下面程序的錯誤:聲明:<類型標誌符>函數名(參數表)const;
說明:
- const是函數類型的一部分,在實現部分也要帶該關鍵字。
- const關鍵字可以用於對重載函數的區分。
- 常成員函數不能更新任何數據成員,也不能調用該類中沒有用const修飾的成員函數,只能調用常成員函數和常數據成員。
A、通過例子來理解const是函數類型的一部分,在實現部分也要帶該關鍵字。
B、通過例子來理解const關鍵字的重載
D、通過例子來理解
1、常成員函數可以被其他成員函數調用。
2、但是不能調用其他非常成員函數。
3、可以調用其他常成員函數。