观察者和继承C ++

时间:2014-11-13 22:41:51

标签: c++ inheritance design-patterns

我正在开发一个观察者模式项目,看起来我的类没有正确继承。我的ObserverChild类有一个函数更新,它接受Observable *类型的对象,如下所示:

class ObserverChild : public Observer {
    void update(Observable* o) {
         // code here
     }
}

我的UpperCaseMonitor类正确继承,我认为

class UpperCaseMonitor : public Observable {
    // implement class
}

当我编译所有内容时,这就是我得到的错误:

monitor.cpp: In member function ‘virtual void UpperCaseMonitor::notify()’: monitor.cpp:29:23: error: no matching function for call to ‘Observer::update(UpperCaseMonitor&)’ (*it)->update(*this);

*it指的是我在for循环中使用的迭代器。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

试试这个

(*it)->update(this);

*这是获取对象,需要传递指针