2014-11-13 2 views
0

Я работаю над проектом шаблона наблюдателя, и кажется, что мои классы не наследуют правильно. Мой класс ObserverChild имеет обновленную функцию, которая принимает объект типа наблюдаемых *, видел здесь:Наблюдатель и наследование C++

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 относится к итератора, я использую в цикле. Есть идеи?

ответ

0

попробовать это вместо

(*it)->update(this); 

* это становится объект, вам нужно передать указатель

+0

Я не могу поверить, что я не думаю об этом. Спасибо! Теперь он компилируется. – uberpirate

+0

принять ответ: D – dariogriffo

+0

Видимо, они не позволят вам до 10 минут. Какое странное требование. – uberpirate

Смежные вопросы