我有一個很奇怪的問題。C++中何時(this!= this)?
我有一個類/功能:
class MCBSystem {
[...]
template <class Receiver>
void setCallBack(int i, Receiver* receiver, void(Receiver::*function)(void*)) {
iCallBacks.at(i) = new CallBack<Receiver>(receiver, function, this);
};
};
我繼承它(乘)在另一大類:
class MenuBox : public OverlayBox, public HIDListener, public FANLib::MCBSystem {
[...]
};
現在,如果我稱之爲 「setCallBack」 功能:
menuBox->setCallBack(MenuBox::CLICKED, this, &SubMain::widgetClicked);
那麼「menuBox」的值就是0x06cf22b8,但在「setCallBack」中,「this」是0x06cf2370。
有人可以解釋究竟是怎麼回事?
真正的問題是:如果我需要在'setCallBack'中存儲'this',我怎麼才能稍後檢查'menuBox == this'?
非常感謝advace!
然後,我怎麼能稍後檢查那個menuBox ==這個(裏面存儲'setCallBack'..? – 2010-06-29 11:37:01
我認爲它應該工作,如果你把它們投給一個普通的基類 – Philipp 2010-06-29 11:37:49
謝謝你所有的答覆。通過這樣做來解決它: (((FANLib :: MCBSystem *)menuBox)==這個,是的,它的工作! – 2010-06-29 11:44:40