首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

C++ 類成員函數修改調用私有變量的封裝實現

     編輯:程式設計疑難解答

代碼結構

class A {
public:
    void func1() { int m = ...; setNumber(m); }
    void setNumber(int x) { a1 = x; }
    int getNumber() { return a1; }
    void func2() { b1 = getNumber(); }
private:
    int a1, b1;
};

封裝優勢

  1. 數據隱藏:外部不可直接訪問 a1,必須通過 setNumber/getNumber
  2. 邏輯控制:Setter 中可添加驗證、日誌、觸發信號
  3. 內部協作:func1 產生值 → setNumber 存儲 → func2 通過 getNumber 讀取 → b1 使用

改進建議

void setNumber(int x) {
    if (x < 0) throw std::invalid_argument("負數無效");
    a1 = x;
    onNumberChanged(x); // 可擴展觀察者模式
}

int getNumber() const { // const 正確性
    return a1;
}

核心原則

類的內部方法推薦使用公有介面(setter/getter)而非直接訪問私有成員,便於未來重構、添加邏輯、保持不變量。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved