私はいくつかのコードをデバッグしています。実行がこのメソッドに到達しました:
void EventNotifier::notify_observers(SpEventInfo pEvent, Observable* target)
{
std::list<Observer*>::iterator it;
for (it = m_observers.begin(); it != m_observers.end(); ++it)
{
Observable* observedTarget = (*it)->target();
bool fNotify = (observedTarget == target);
...
前の抜粋の最後の文が実行されました。両方の変数、observedTarget と target は同じ値を持ちますが、ブール値の fNotify は false です! 関連する「ターゲット」オブジェクトは多重継承を使用しており、「監視可能」は親の 1 つです。ただし、すべてが Observable にキャストされるため、比較は同じ型のポインターにすぎません。実際、デバッガーは両方のポインターに対して同じ値を示します。
問題があったかどうかはわかりません。どんな助けでも大歓迎です。ありがとうございました
セシリオ・サルメロン