Я работаю над проектом шаблона наблюдателя, и кажется, что мои классы не наследуются правильно. Класс My 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. Есть идеи?
попробуйте это вместо этого
(*it)->update(this);
* это получает объект, вам нужно передать указатель