के लिए जांचें यदि कोई ऑब्जेक्ट क्लासए या व्युत्पन्न प्रकार क्लासबी प्रकार है तो मैं रनटाइम पर कैसे जांच करूं? एक मामले में मैं दोनों मामलों में अलग सेव्युत्पन्न प्रकार (सी ++)
ClassA* SomeClass::doSomething (ClassA*)
{
if(/* parameter is of type base class */) {
} else if { /* derived class */) {
}
}
शायद मैं कह सकते हैं कि व्युत्पन्न वर्ग ClassB कुछ विशेष क्षमता है संभाल करने के लिए किया है। लेकिन मौजूदा क्लास क्लास को बदलने के बिना मैं ऐसा कैसे करूं?
क्लास को कक्षाबी के बारे में कुछ भी जानने की आवश्यकता नहीं है। –
सामान्य रूप से कक्षा के प्रकार की जांच करना, खराब डिजाइन का संकेतक है। एक विकल्प के लिए * आगंतुक * डिजाइन पैटर्न देखें। पॉलिमॉर्फिज्म पर भी अध्ययन करें। –