/*條款22 將成員變數為private*/
#includeusing namespace std;
class accesslevedls
void setreadwrite(int value)
int getreadwrite()const
void setwriteonly(int value)
private:
int noaccess; //對此 int 無任何訪問動作
int readonly; //對此 int 做唯讀訪問
int readwrite;//對此 int 做讀寫訪問
int writeonly;//對此 int 做只寫訪問
};int main()
/*封裝 如果你對客戶隱藏成員變數,可以確保類的約束條件總是會獲得維護,因為只能成員函式可以影響他們*/
條款22 將成員變數宣告為private
條款22 將成員變數宣告為private declare data members private.內容 首先我們討論一下成員變數宣告為public的情況,我們先從語法一致性角度來分析,如果成員變數不是public,那麼客戶訪問這些變數唯一的方法只能是通過訪問成員函式,由於這個時候public介面內...
條款22 將成員變數宣告為private
假設有乙個public成員變數,當取消它時 所有使用它的客戶 都會被破壞。因此public成員變數完全沒有封裝性。假設有乙個protected成員變數,當取消它時 所有使用它的derived classes都會被破壞。所有反對public成員變數的論點同樣適用於protected。其封裝性並不比pu...
條款22 將成員變數宣告為private
為什麼要將成員變數宣告為private 1.為了語法的一致性 訪問class成員變數時不需要使用小括號,訪問class成員函式時需要使用小括號。2.使用函式可以讓你對成員變數的處理有更精準的控制 可以實現 唯讀 只寫 3.最重要的,是為了封裝。封裝的好處 可以為所有可能的實現提供彈性 如新增通知 驗...