如何获取成员对象以通知其容器对象
How do I get a member object to notify its container object?
我有81个名为Square的对象,位于另一个称为Puzzle的对象中的二维数组中。我想这样做,当某个函数在单个 Square 对象中触发时,它会在其相应的 Puzzle 对象中触发一个函数。你建议怎么做?甚至可能吗?
你试图实现的目标可以通过实现"观察者模式"来完成。您的拼图对象将注册 Square 对象中的事件。Square 对象在其状态更改时通知拼图。以下链接将帮助您弄清楚如何完成所有这些操作。
http://www.codeproject.com/Articles/328365/Understanding-and-Implementing-Observer-Pattern-in
在不修改 Square
和 Puzzle
类的情况下执行此操作的最简单方法是将 Square
方法调用和Puzzle
触发器代码封装在函数中。一个(有点做作的)例子是:
void GoUp(Square& sq, Puzzle& pz) {
sq.GoUp();
pz.NotifySquareGoUp(sq);
}
现在,任何需要调用 GoUp()
在 square 对象上并通知 puzzle 对象的代码只需要调用该函数。
你是说回调函数吗?
你可以在Square中存储一个指针或对Puzzle的引用,当调用Square的某个函数时,你可以通过指针/引用来做事。
相关文章:
- 什么时候调用组成单元对象的析构函数
- 对RValue对象调用的LValue ref限定成员函数
- CMake-按正确顺序将项目与C运行时对象文件链接
- 空基优化子对象的地址
- 将对象数组的引用传递给函数
- 你能重载对象变量名本身返回的内容吗
- Qt:如何通知对象已建立涉及它的信号槽连接
- 从元对象获取属性更改通知程序
- 通知 GUI 对象有关屏幕大小的信息 - 设计
- Qt 5.2模型视图模式:如何通知模型对象底层数据结构的变化
- 如何获取成员对象以通知其容器对象
- 如何设置通知功能,以便在创建QWidget派生对象时触发
- 从 C/C++ 代码通知 java 对象
- 存储非拥有引用的对象,必须在销毁引用之前通知该引用
- 当通知程序/信号超出范围时,在提升绑定中解除分配回调侦听器对象
- 当对象超出范围/无效时得到通知
- 如何实现订阅数据馈送?通知对象
- 在c++中,通知引用对象被删除
- 对象修改通知
- C++:对象通知其所有者销毁自身的通用方法