साथ एक सदस्य समारोह ओवरराइड नीचे दिए गए उदाहरण पर विचार करें। व्युत्पन्न कक्षा में एक अलग रिटर्न प्रकार के साथ किसी फ़ंक्शन को ओवरराइड करना क्यों संभव नहीं है?अलग वापसी प्रकार
मेरा मानना है कि, किसी फ़ंक्शन को ओवरराइड करने के क्रम में, बेस क्लास वर्चुअल विधि को व्युत्पन्न कक्षा में फिर से परिभाषित करने की आवश्यकता है। किसी विधि को फिर से परिभाषित करने के लिए, विधियों के हस्ताक्षर समान होना चाहिए। चूंकि वापसी का प्रकार हस्ताक्षर का हिस्सा नहीं है, इसलिए मेरा मानना है कि रिटर्न प्रकार में अंतर होने पर भी, विधि को फिर से परिभाषित किया जाएगा? उस मामले में उपर्युक्त कोड के लिए, वर्चुअल फ़ंक्शन func
व्युत्पन्न कक्षा में एक अलग रिटर्न प्रकार के साथ फिर से परिभाषित किया गया है। लेकिन संकलक एक त्रुटि फेंकता है। क्या मेरी समझ सही है?
स्पष्टीकरण के लिए, क्या संकलक आप दे रहा है क्या त्रुटि है? –
@ सियोनशेवोक, जीसीसी कम से कम करता है: http://codepad.org/z7rXpCeK – bdonlan
@ सियोनशेवोक: मैं जीसीसी 3.4.6 –