Ok, i subject sono due. A questo punto il parametro della funzione update() serve solo a stabilire quale subject usare per aggiornare i dati dell'observer. A questo punto dovresti modificare update() così:
Inoltre non puoi passare nel costruttore (o altra funzione preposta) un generico Subject*. Devi passare proprio DerSubject1* e DerSubject2* se non vuoi perdita di informazioni.codice:if(subject==mSubject1) { std::cout<<"\nHello from observer "<<this; std::cout<<"\nI'm observing subject "<<mSubject1; parametro1 = mSubject1->metodo1(); // esempio } if(subject==mSubject2) { std::cout<<"\nHello from observer "<<this; std::cout<<"\nI'm observing subject "<<mSubject2; parametro2 = mSubject2->metodo2(); // esempio }
Beh, è il suo mestiere, no?...ecco il perchè del tentativo di ricorrere al d.p. observer.


Rispondi quotando