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;
};
a1,必須通過 setNumber/getNumberfunc1 產生值 → 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)而非直接訪問私有成員,便於未來重構、添加邏輯、保持不變量。