यहाँ मेरी कोड है, और आईडीई देव सी ++ 11व्युत्पन्न वर्ग के सदस्य कार्य करने के लिए सूचक बारे
#include<iostream>
using namespace std;
class A{
public:
int a=15;
};
class B:public A
{
};
int main(){
int A::*ptr=&B::a; //OK
int B::*ptr1=&A::a; //why?
int B::A::*ptr2=&B::a;//why?
int B::A::*ptr3=&A::a; //why?
}
मैंने पढ़ लिया है प्रोग्रामिंग भाषाओं है - सी ++ और मुझे पता है &B::a
के प्रकार int A::*
है, लेकिन मैं यह समझ में नहीं आता कि अगली तीन पंक्तियां संकलन क्यों पारित करेंगी। और मेरे लिए सबसे अजीब चीज int B::A::*
का वाक्यविन्यास है, इसका क्या अर्थ है? मैं सिर्फ C/C++
का नवागंतुक हूं, इसलिए कृपया मेरा अजीब सवाल बर्दाश्त करें।
@ रॉन अहम .. यह ** ** [एमसीवी] है। 'ptr' प्रकार 'int ए :: *', 'ptr2' प्रकार का है' int B :: ए :: *', आदि .. जैसा कि आप देख सकते हैं: ओपी द्वारा पोस्ट किया गया कोड [बस ठीक से संकलित करता है] (http://ideone.com/Cz2Bmg), वे सिर्फ ** क्यों ** संकलित हैं के बारे में उलझन में हैं। –
@ AlgirdasPreidžius True। मुझे सही साबित होना है। – Ron
आपको क्यों लगता है कि उन्हें संकलन पास नहीं करना चाहिए? –