सर आदरणीय!कैसे C++ बहुरूपता आंतरिक रूप से लागू करता है?
मैं आपको बता देना चाहिए कि क्या मुझे पता है और मैं क्या पूछा सवाल के बारे में इतना है कि आप मेरी समझ के कमजोर क्षेत्र पता कर सकते हैं पता नहीं है।
मुझे पता है कि C++ Vtable का उपयोग करके पॉलीमोर्फिज्म लागू करता है जो पॉइंटर्स वर्ग के वर्चुअल फ़ंक्शन पर प्रत्येक पॉइंटर पॉइंट्स है, पदानुक्रम में प्रत्येक वर्ग में एक vtable है। अब लगता है कि मैं निम्नलिखित वर्ग
class person
{
char name[20];
public:
person(char* pname)
{
strcpy(name,pname);
}
virtual void show()
{
cout<<"inside person show method, Name: "<<name;
}
};
class teacher:public person
{
int scale;
teacher(char*pname, int s):person(pname)
{
scale=s;
}
void show()
{
cout<<"inside the teacher show method, Scale: "<<scale;
}
};
अब लगता है मुख्य प्रोग्राम
person *ptr;
ptr=new teacher(16,"Zia");
ptr->show();
अब मैं कर रहा हूँ इस बिंदु पर भ्रमित में मैं लिखना है, कॉल आधार वर्ग के शो समारोह के लिए जाना जाएगा, अब यह एक आभासी समारोह तो यह inturn approprite फ़ंक्शन को कॉल करने के रूप में। मुझे पता है कि मैं यहाँ गलत हूँ। मैं उलझन में हूं कि कॉल का अनुक्रम क्या होगा। Vtable की भूमिका क्या है और यह कैसे काम करती है विस्तृत करें।
"सम्मानित सर"? गंभीरता से? यह "सम्मानित सर * एस * होना चाहिए!" चूंकि हम बहुत से हैं ...;) मुझे हमेशा आश्चर्य होता है कि कुछ उपयोगकर्ता मानदंडों के साथ क्यों शुरू करते हैं, यह थोड़ा पुरातन है। – Spoike
ज़िया, कृपया मार्कडाउन सिंटैक्स सीखें: http://stackoverflow.com/editing-help – avakar
@ ज़िया यू रहमान: qn http://stackoverflow.com/questions/2092283/how-functions-are-resolved पर एक नज़र डालें -by-compiler, जो बताता है कि जब कंपाइलर एक पॉलीमोर्फिक कॉल करता है और जब यह प्रत्यक्ष कॉल होने जा रहा है .. –