我有一个很奇怪的问题。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