C ++类成员变量交互

时间:2016-07-16 15:52:00

标签: c++ class variables declaration

我有一个包含2个变量的类。他们是公开的。

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

在我的班级宣言中:

`

public:

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

` 当我更新variable1时,我想检查变量2的更新值是什么,并根据该结果做一些事情。

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

所以我知道我可以通过更新第二个变量来解决这个问题,但我知道必须有一种方法让他的第二个变量不断更新。问题显然在声明中,但“const”或“静态”不会有帮助......我不这么认为。如果我能找到一个雄辩的方式来表达问题,我相信我可以谷歌答案。但我不能!

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

根本不要这样做......只创建一个变量并在需要时将其相乘。

答案 2 :(得分:1)

最好的方法是只要使用变量2

就使用变量1的倍数

对于你的if语句,请使用

if((variable1 * 10) > 10){
  //do stuff
}