इस कोड को वास्तव में काम करता है:कक्षा में पुराने और नए सी ++ फ़ंक्शन सिंटैक्स को मिश्रित कर रहा है?
class Abstract {
virtual auto foo() -> int = 0;
};
class Concrete: public Abstract {
int foo() { cout << "blah!" << endl; return 1; }
} instance;
मैं समझता हूँ कि समारोह घायल और एक ही समारोह हस्ताक्षर होने के लिए लिंक होता है, लेकिन सी ++ 14 में वास्तव में कानूनी मिश्रण इस तरह का है?
मुझे लगता है कि 'कंक्रीट' को 'सार' से प्राप्त किया जाना चाहिए? (पीएस: यदि आप यह सुनिश्चित करना चाहते हैं कि यह वास्तव में बेस फ़ंक्शन को ओवरराइड कर रहा है, तो ओवरराइड कीवर्ड का उपयोग करें। यदि यह संकलित करने में विफल रहता है तो आपको पता है कि वे मेल नहीं खाते हैं।) – Borgleader
चूंकि सी ++ पीछे की तरफ संगत है, यह नहीं होना चाहिए एक समस्या, अगर यह चाहता है कि एक और सवाल है (स्टाइल गाइड) – deW1
@ डीडब्ल्यू 1 * आम तौर पर */* अधिकतर * पिछड़ा संगत अधिक सटीक होगा ;-) –