我想在C++中创建一个Notifier类,我将在其他对象中使用它来在对象被销毁时通知各个持有者.
templateclass Notifier { public: Notifier(Owner* owner); ~Notifier(); // Notifies the owner that an object is destroyed }; class Owner; class Owned { public: Owned(Owner* owner); private: Notifier _notifier; };
我的观点是,由于我有一个密集而复杂的对象图,我想避免将所拥有对象的地址存储在通知程序中.有没有办法更改我的通知程序类,以便它可以从自己的地址推导出拥有对象的地址,以及在编译时计算的偏移量?
另请注意,任何对象可能必须通知几个"所有者",可能来自同一个类.
谢谢.
看看GoF观察者设计模式.