कहते हैं कि हम इस राशि:व्युत्पन्न सार कक्षा में शुद्ध आभासी तरीकों
class A
{
public:
virtual void foo() = 0;
};
class B: public A
{
public:
virtual void foo() = 0;
};
संकलक थ्रो कोई त्रुटि है, मैं अपने अनुमान क्योंकि बी भी एक अमूर्त वर्ग है और इस तरह के रूप में यह एक से foo
लागू करने के लिए नहीं है लेकिन इस तरह के निर्माण का क्या अर्थ है?
1) 0 से foo
बी से foo
ए से छिपाता है?
2) प्रथम श्रेणी जो बी से विरासत और एक अमूर्त वर्ग नहीं है, यह दो कार्यान्वयन की तरह प्रदान करने के लिए है:
class C: public B
{
public:
virtual void A::foo() {};
virtual void B::foo() {};
};
संकलक केवल शिकायत करता है, तो B::foo()
के कार्यान्वयन याद आ रही है, लेकिन यह अनुपलब्ध A::foo()
के बारे में शिकायत नहीं करता है।
सब कुछ: क्या यह शुद्ध आभासी तरीकों को छिपाने का एक तरीका है?
आप इसे वास्तव में किस प्रकार छिपाया? – Alon
यदि मैं सी में ए :: foo() के लिए कार्यान्वयन प्रदान नहीं करता हूं, तो मैं सी के किसी ऑब्जेक्ट को भी चालू कर सकता हूं। इसलिए सी को हमेशा तत्काल किया जा सकता है, भले ही ए :: foo() गुम हो। तो मैंने सोचा कि सी में किसी भी तरह ए :: foo() की आवश्यकता नहीं है, इसलिए "छुपा"। – Juergen
क्योंकि बी विरासत में आता है .. – Alon