C++类成员变量交互
C++ class member variables interaction
我有一个有 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
}
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 将数组的地址分配给变量并删除
- 为"adjacent"变量赋值时出现问题
- enum是C++中的宏变量还是整数变量
- Qt VTK交互风格的信号到小部件
- 在全局变量中保存类的实例以重新创建类(创建"backup")
- 用C++中的一个变量定义一个常量
- 具有奇怪重复模板模式的派生类中的成员变量已损坏
- 你能重载对象变量名本身返回的内容吗
- 内置函数可查看CPP中的成员变量
- 是否可以初始化不可复制类型的成员变量(或基类)
- 尝试通过多个向量访问变量时,向量下标超出范围
- 试图让变量检查数组中的某些内容
- Cpp-Tuple使用带有变量的get
- 将包含C样式数组的对象初始化为成员变量(C++)
- 为什么在访问 vtkRenderWindow 的"交互器"变量时会发生段错误?
- C++中的程序如何使用"系统"变量与 Linux 中的 shell 脚本交互?
- 如何使函数与其他c++之间的类变量交互
- C++类成员变量交互