C++类成员变量交互

C++ class member variables interaction

本文关键字:交互 变量 成员 C++      更新时间:2023-10-16

我有一个有 2 个变量的类。它们是公开的。

我想以这样的方式初始化它们,即一个始终是另一个的倍数,当我更新第一个时,另一个将自动更新。

在我的类声明中:

'

public:
Int variable1;
Int variable2 = (10*variable1);

'当我更新变量 1 时,我想检查变量 2 的更新值是多少,并根据该结果做一些事情。

variable1++;
If (variable2 > 10)
{
//Do stuff
}

所以我知道我可以通过更新第二个变量来解决这个问题,但我知道必须有一种方法可以让第二个变量不断更新。问题显然出在声明中,但"常量"或"静态"无济于事......我不认为。如果我能找到一种雄辩的方式来表达这个问题,我相信我可以谷歌搜索答案。但我不能!

你不能那样做。正确的方法是通过封装。

在下面的示例中,只需调用 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
}