У меня очень странный вопрос.
У меня есть класс / функция:
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.
Может кто-нибудь объяснить, что происходит на земле?
[EDIT:] Истинный вопрос: если мне нужно сохранить 'this' внутри 'setCallBack', как я могу проверить позже, что 'menuBox == this'?
Большое спасибо за продвижение!