[英]C++ class member variables interaction
我有一個帶有2個變量的類。 他們是公開的。
我要初始化它們,使其始終是另一個的倍數,並且當我更新第一個時,另一個將自動更新。
在我的課程聲明中:
`
public:
Int variable1;
Int variable2 = (10*variable1);
`當我更新變量1時,我想檢查變量2的更新值是什么,並根據該結果進行一些處理。
variable1++;
If (variable2 > 10)
{
//Do stuff
}
因此,我知道可以通過更新第二個變量來解決此問題,但是我知道必須有一種方法可以使他的第二個變量不斷更新。 問題顯然在聲明中,但是“ const”或“ static”將無濟於事……我不認為。 如果我能找到一種雄辯的方法來表達問題,我相信我可以用谷歌搜索答案。 但是我不能!
你就是不能那樣做。 正確的方法是通過封裝。
在下面的示例中,只需調用getter即可獲取值(內聯=與直接訪問一樣快),並且您只能修改variable1
。 您可以添加set_variable2
方法,但沒有任何意義。
public:
inline int get_variable1() const { return variable1; }
inline int get_variable2() const { return variable1*10; }
inline void set_variable1(int new_value) { variable1=new_value; }
private:
int variable1;
根本就不要做...僅創建一個變量,並在需要時將其相乘。
最好的方法是每當使用變量2時都使用變量1的倍數
對於您的if語句,請使用
if((variable1 * 10) > 10){
//do stuff
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.