मैं "यह" सूचक समझना चाहता हूं। मैंने सोचा कि "यह" सूचक वर्ग वस्तु के मूल्य को संदर्भित करता है। हालांकि, नीचे दिए गए कोड में, मैं "इस" सूचक के विभिन्न मान दिखाई दे सकते: इस कार्यक्रम कासी ++: "इस" सूचक को समझना
#include <stdio.h>
class InterfaceA{
public:
virtual void funa() = 0;
};
class InterfaceB{
public:
virtual void funb() = 0;
};
void globala(InterfaceA* obj){
printf("globalA: pointer: %p\n\r",obj);
}
void globalb(InterfaceB* obj){
printf("globalB: pointer: %p\n\r",obj);
}
class concrete : public InterfaceA, public InterfaceB{
public:
void funa(){
printf("funa: pointer: %p\n\r",this);
globala(this);
globalb(this);
}
void funb(){
printf("funb: pointer: %p\n\r",this);
globala(this);
globalb(this);
}
};
int main(int argc, char *argv[])
{
concrete ac;
ac.funa();
ac.funb();
return 0;
}
आउटपुट देता है:
funa: pointer: 0x7ffff67261a0
globalA: pointer: 0x7ffff67261a0
globalB: pointer: 0x7ffff67261a8
funb: pointer: 0x7ffff67261a0
globalA: pointer: 0x7ffff67261a0
globalB: pointer: 0x7ffff67261a8
किसी भी मदद की इस बात को समझ सकते हैं।
धन्यवाद।
मुझे लगता है कि आपका वास्तविक प्रश्न यह है कि जब एक पॉइंटर का मूल्य बदल जाता है तो यह एक फ़ंक्शन पर जाता है जो एक पॉइंटर को अलग करता है पुरानी कक्षा –
मैंने आपका प्रश्न बहुत रोचक पाया, और मैंने इसे कम करने के लिए खुद को बहुत संघर्ष किया। मैंने एक विस्तारित उत्तर पोस्ट किया है, कुछ आंकड़े संबंधित (डुप्लिकेट) प्रश्न में ऑब्जेक्ट लेआउट को समझाने की कोशिश कर रहे हैं। इसे जांचने के लिए स्वतंत्र महसूस करें, यह आपकी मदद कर सकता है! – sestus