我正在调试一些代码。执行到了这个方法:
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 为假!涉及的“目标”对象使用多重继承,“可观察”是父对象之一。但是一切都被转换为 Observable,所以比较应该只是相同类型的指针。事实上,调试器为两个指针显示相同的值。
我不知道是问题所在。非常感谢任何帮助。谢谢
塞西里奥·萨尔梅隆