條款22 將成員變數宣告為private

2021-09-12 12:43:23 字數 451 閱讀 8648

為什麼要將成員變數宣告為private:

1.為了語法的一致性;

訪問class成員變數時不需要使用小括號,

訪問class成員函式時需要使用小括號。

2.使用函式可以讓你對成員變數的處理有更精準的控制;可以實現「唯讀」、「只寫」…

3.最重要的,是為了封裝

封裝的好處:

可以為所有可能的實現提供彈性;

如新增通知、驗證class約束條件、在多執行緒環境中執行同步控制…

確保class的約束條件總會獲得維護,猶有進者,你保留了日後變更實現的權利;

不封裝意味著不可改變;

protected成員變數類似,不封裝它會破壞派生類**。

從封裝的角度看,只有兩種訪問許可權:private(提供封裝)和其他(不提供封裝)。

條款22 將成員變數宣告為private

條款22 將成員變數宣告為private declare data members private.內容 首先我們討論一下成員變數宣告為public的情況,我們先從語法一致性角度來分析,如果成員變數不是public,那麼客戶訪問這些變數唯一的方法只能是通過訪問成員函式,由於這個時候public介面內...

條款22 將成員變數宣告為private

假設有乙個public成員變數,當取消它時 所有使用它的客戶 都會被破壞。因此public成員變數完全沒有封裝性。假設有乙個protected成員變數,當取消它時 所有使用它的derived classes都會被破壞。所有反對public成員變數的論點同樣適用於protected。其封裝性並不比pu...

條款22 將成員變數宣告為private

將所有成員變數都宣告private,剩下的成員就是成員函式了。那麼外部訪問時都得要帶括號,因為只可以訪問成員函式。如果令成員變數為public,每個人都可以讀寫它,但是如果你以函式取得或設定其值,你就可以實現出 不可訪問 唯讀訪問 讀寫訪問 protected 和public其實是一樣的,無論從一致...