का प्रकार प्राप्त करें यदि मैं सही ढंग से समझता हूं, टाइपिड पॉलीमोर्फिज्म में वास्तविक प्रकार निर्धारित कर सकता है, जबकि टाइपफॉफ़ नहीं कर सकता है।वैरिएबल
क्या यह भी सच है कि उनके रिटर्न का उपयोग विभिन्न उद्देश्यों के लिए किया जाता है: टाइपफ़ोफ की वापसी प्रकार के कीवर्ड के रूप में उपयोग की जाती है जो परिवर्तनीय परिभाषित कर सकती है, लेकिन टाइपिड की वापसी नहीं हो सकती है?
क्या दोनों पॉलिमॉर्फिज्म के लिए वास्तविक प्रकार प्राप्त करने का कोई तरीका है और किसी अन्य चर को परिभाषित करने के लिए प्रकार के रूप में वापसी का उपयोग करें? मुझे उम्मीद है कि व्युत्पन्न वर्ग प्रकार को बेस क्लास पर इंगित करने वाले पॉइंटर से प्राप्त करें और व्युत्पन्न कक्षा में एक पॉइंटर या एक पॉइंटर परिभाषित करें। कुछ ऐसा:
baseclass *p = new derivedclass
typexxx(*p) *pp = dynamic_cast<typexxx(*p) *> (p);
// would like to convert the pointer from pointing to a base class
// to its derived class
बहुत बहुत धन्यवाद!
क्या आप इसका उदाहरण दे सकते हैं कि आप ऐसा क्यों करना चाहते हैं? विरासत पदानुक्रम का मुख्य बिंदु यह है कि आपको सामान्य रूप से वास्तविक प्रकार को जानने की आवश्यकता नहीं होती है। –
बस व्युत्पन्न वर्ग में परिभाषित कुछ सदस्यों को संदर्भित करना चाहते हैं लेकिन आधार वर्ग में नहीं। मुझे यकीन नहीं है कि आधार वर्ग में सदस्य कार्यों को व्युत्पन्न वर्ग के समान नाम के साथ जोड़ना और उन्हें आभासी घोषित करना एक अच्छा विचार है, क्योंकि उन सदस्य कार्य उस विशेष व्युत्पन्न वर्ग के लिए बहुत विशिष्ट हैं और अन्य में आवश्यक नहीं हैं व्युत्पन्न कक्षाएं, और बेस फ़ंक्शन बड़ा होगा यदि मैं उन्हें इसमें जोड़ूं। – Tim
ठीक है, आप डायनामिक_कास्ट के साथ जो भी चाहते हैं वह कर सकते हैं, लेकिन व्युत्पन्न प्रकार पॉइंटर्स बनाने के लिए आपको एक सीढ़ी का उपयोग करने की आवश्यकता होगी। –