बहुरूपता के बारे में सीखते समय आप आमतौर पर ऐसा कुछ देखते हैं
class Base { int prv_member; virtual void fn(){} }
class Derived : Base { int more_data; virtual void fn(){} }
क्या है अपकास्टिंग या डाउनकास्टिंग? है (Derived*)base_ptr;
एक Upcast या खिन्न?
मैं इसे अपकास्ट कहता हूं क्योंकि आप आधार से कुछ अधिक विशिष्ट में चले जा रहे हैं। अन्य लोगों ने मुझे बताया कि यह एक डाउनकास्ट है क्योंकि आप शीर्ष के मूल होने के साथ किसी चीज़ में एक पदानुक्रम नीचे जा रहे हैं। लेकिन दूसरे लोग इसे कहते हैं जो मैं इसे कहता हूं।
जब एक आधार ptr को व्युत्पन्न ptr में परिवर्तित किया जाता है, तो इसे अपकास्टिंग या डाउनकास्टिंग कहा जाता है? और अगर कोई आधिकारिक स्रोत से लिंक कर सकता है या समझा सकता है कि इसका नाम महान से अधिक क्यों है।
virtual
अनावश्यक है लेकिन "चोट" नहीं करता है। क्या आप इस बात पर विस्तार से विचार कर सकते हैं कि आपको उस संदर्भ में इसका उपयोग क्यों नहीं करना चाहिए?