我创建了这样一个类
class myClass {
public:
int addMeOne;
void Invoked() { .... }
};
我创建了它的一个对象,并用来通过引用将它发送到我程序的所有其他模块。每个人都习惯将 addMeOne 变量递增 1 。有些人甚至过去常常加两次,但这不是重点。
有了这个,现在我希望每当有人更改 addMeOne 时,我的函数 Invoked() 应该被调用。
请注意,正确的策略应该是我应该允许 addMeOne 通过某个函数暴露在外部,而在该函数内部我可以调用 Invoked 。但是,现在不能更改接口(interface),因为它现在已暴露给所有其他接口(interface),不应修改。我该如何纠正这个。 ?
最佳答案
您必须创建一个方法,将值分配给 addMeOne
变量,这称为 setter 方法,并使变量本身成为私有(private)的。
我相信没有办法在更改整数变量时触发函数。
会更改接口(interface),但不会需要更改外部代码的另一种方法是定义一个模拟整数行为的类,即实现 operator++
等,将addMeOne
改为该类型。
关于c++公共(public)对象更改应该调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12199146/