我正在开发一个观察者模式项目,看起来我的类没有正确继承。我的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循环中使用的迭代器。有什么想法吗?
答案 0 :(得分:0)
试试这个
(*it)->update(this);
*这是获取对象,需要传递指针