簡體   English   中英

C ++類成員變量的交互

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM