我正在尝试用C++实现观察者设计模式。我希望它是这样的一种方式,即观察者在被销毁时不需要显式地删除自己。因此,我尝试使用vector<weak_ptr<Observer>>来维护Subject类中的观察者列表。 我还希望观察者将自己添加到各自构造函数中的主题中。因此,我尝试如下实现: The Subject class :
我在读这个,
我相信现在的GCC,CLang,可能还有视觉C++都使用smart pointers with control block。我可以想象为什么没有使用intrusive reference counting,但是第二个实现-- smart pointer with pointer to pointer block有什么问题呢?应该有两个指针</
我试图在C++中实现观察者模式。我试图用一个纯虚拟方法声明一个观察者接口: notify(),然后让观察者实现/派生这个接口。此外,我希望保留一个指向观察类中所有观察者类的指针向量,以便我可以对每个类调用notify()。遗憾的是,我的指针向量有点问题。这是观察者界面:
class LocationEstimateOb