【发布时间】:2012-08-25 07:34:12
【问题描述】:
我创建了一个这样的类
class myClass {
public:
int addMeOne;
void Invoked() { .... }
};
我创建了它的一个对象,并通过引用将它发送到我程序的所有其他模块。每个人都习惯将 addMeOne 变量增加 1 。有些人甚至习惯添加两次,但这不是重点。
有了这个,现在我希望每当有人更改 addMeOne 时,我的函数 Invoked() 应该被调用。
请注意,正确的策略是我应该允许 addMeOne 被某个函数暴露在外部,而在该函数内部我可以调用 Invoked 。但是,现在无法更改接口,因为它现在已向所有其他人公开并且不应修改。我该如何纠正这个。 ?
【问题讨论】:
-
你应该提供 getter 和 setter 方法来改变值然后调用你的回调。
-
您可以通过引用包装器来做到这一点,但仅此而已。
标签: c++ function object invoke