c++公共(public)对象更改应该调用函数

标签 c++ function object invoke

我创建了这样一个类

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/

相关文章:

c++ - 如何在源代码中查找内存泄漏

arrays - 尝试通过函数访问 bash 数组会导致 ${1[@]} : bad substitution

java - String = 运算符引用或在这种情况下创建新的 String 对象

java - 将不同对象类型的数组列表合并为一个

qt - 如何指示 Qt Creator PRO 文件在单独的文件夹中输出 *.o 文件和 moc_* 文件?

c++ - 用 ESC 字符创建字符串

c++ - Boost::spirit(经典)基元与自定义解析器

c++ - 尝试读入字符串并将其放入二叉树中

javascript - javascript中有没有一种方法可以获取给定函数的定义作为字符串,以便可以修改和评估?

PHP 错误 : Call to a member function execute() on a non-object