共享資料的保護
- 對于既需要共享、又需要防止改變的資料應該聲明為常類型(用const進行修飾)。
- 對于不改變對象狀态的成員函數應該聲明為常函數。
常類型
-
常對象:必須進行初始化,不能被更新。
const 類名 對象名
-
常成員
用const進行修飾的類成員:常資料成員和常函數成員
-
常引用:被引用的對象不能被更新。
const 類型說明符 &引用名
-
常數組:數組元素不能被更新(詳見第6章)。
類型說明符 const 數組名[大小]…
- 常指針:指向常量的指針(詳見第6章)。
常對象
- 用const修飾的對象
- 例:
class A
{
public:
A(int i,int j) {x=i; y=j;}
...
private:
int x,y;
};
A const a(,); //a是常對象,不能被更新
常成員
- 用const修飾的對象成員
-
常成員函數
使用const關鍵字說明的函數。
常成員函數不更新對象的資料成員。
常成員函數說明格式:
類型說明符 函數名(參數表)const; 這裡,const是函數類型的一個組成部分,是以在實作部分也要帶const關鍵字。
- const關鍵字可以被用于參與對重載函數的區分
-
通過常對象隻能調用它的常成員函數。
常資料成員
使用const說明的資料成員。
常引用
- 如果在聲明引用時用const修飾,被聲明的引用就是常引用。
- 常引用所引用的對象不能被更新,就是資料隻讀,不能修改,隻能讀取
-
如果用常引用做形參,便不會意外地發生對實參的更改。常引用的聲明形式如下:
const 類型說明符 &引用名;