【问题标题】:Observer and inheritance C++观察者和继承 C++
【发布时间】:2014-11-13 22:41:50
【问题描述】:

我正在研究一个观察者模式项目,我的类似乎没有正确继承。我的 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 循环中使用的迭代器。有什么想法吗?

【问题讨论】:

    标签: c++ inheritance design-patterns


    【解决方案1】:

    试试这个

    (*it)->update(this);
    

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

    【讨论】:

    • 我不敢相信我没有想到这一点。谢谢!它现在编译得很好。
    • 显然他们不会让你在 10 分钟之后。多么奇怪的要求。
    • 该死的 StackOverflow,该死的! :D
    猜你喜欢
    • 2015-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-15
    • 1970-01-01
    • 2016-08-26
    • 2021-11-22
    相关资源
    最近更新 更多