天天看點

const 共享資料保護

共享資料的保護

  • 對于既需要共享、又需要防止改變的資料應該聲明為常類型(用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 類型說明符 &引用名;

c++

繼續閱讀