मेरे पास एक बहुत ही अजीब सवाल है।सी ++ में कब (यह! = यह) है?
मैं एक वर्ग/समारोह है:
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);
फिर "मेनूबॉक्स" का मान 0x06cficies8 कहता है लेकिन "setCallBack" के अंदर, "यह" 0x06cf2370 है।
कोई बता सकता है कि पृथ्वी पर क्या चल रहा है?
[संपादित करें:] सच्चा सवाल यह है: अगर मुझे 'सेट' को 'सेटकॉलबैक' के अंदर स्टोर करने की ज़रूरत है, तो मैं बाद में 'मेनूबॉक्स == यह' कैसे देख सकता हूं?
सलाह में बहुत धन्यवाद!
फिर, मैं बाद में उस मेनू को कैसे देख सकता हूंबॉक्स == यह (जिसे 'सेटकॉलबैक' के अंदर संग्रहीत किया गया है ..? –
मुझे लगता है कि यदि आप उन्हें एक सामान्य बेस क्लास में डाल देते हैं तो यह काम करना चाहिए। – Philipp
सभी उत्तरों के लिए धन्यवाद। इसे हल करके हल करें: ((FANLib :: MCBSystem *) मेनूबॉक्स) == यह, और हाँ, यह काम करता है! –