c++ - how to use a virtual function again in an inherited class -
मेरे पास 3 वर्ग अर्थात्
class A; कक्षा बी; वर्ग सी: सार्वजनिक बी {}; अब मैं सी में कुछ सदस्य फ़ंक्शंस का उपयोग करना चाहता हूं, जो कि A में वर्चुअल बना दिया गया है और बी । जब मैं ए से सी से सदस्य का उपयोग करने का प्रयास करता हूं तो यह कहकर एक त्रुटि देता है कि सी ए का सीधा आधार वर्ग नहीं है। क्या करना चाहिए मैं करता हूँ? क्या मुझे उस कोड का टुकड़ा फिर से लिखना चाहिए?
मैंने अन्य साइटों की खोज की और उलझन में आने के कारण जो विरासत की मेरी अवधारणाओं को बर्बाद कर दिया, इसलिए कृपया एक वर्णनात्मक लेकिन स्पष्ट जवाब दें
आपका प्रश्न बहुत स्पष्ट नहीं है क्या आप पूछ रहे हैं कि फ़ंक्शन के A या B के संस्करण को कैसे कॉल करें? यदि हां, तो आप ऐसा कुछ कर सकते हैं: #include & lt; iostream & gt; struct A {आभासी शून्य Foo () {std :: cout & lt; & lt; "ए :: फू ()" "\ n"; }}; संरचना बी: सार्वजनिक ए {शून्य फीू () {std :: cout & lt; & lt; "बी :: फू ()" "\ n"; }}; struct सी: सार्वजनिक बी {शून्य foo () {std :: cout & lt; & lt; "सी :: फू ()" "\ n"; }}; Int मुख्य (शून्य) {सी सी; सी। ए :: फू (); C.B :: Foo (); सी। फू (); ए * पी 1 = & amp; सी; P1-> Foo (); वापसी 0; } <:: ) सी :: फू ()
Comments
Post a Comment