यह एक साधारण प्रश्न की तरह प्रतीत हो सकता है, लेकिन मुझे कहीं और जवाब नहीं मिल रहा है।क्या व्युत्पन्न कक्षाओं में सभी आभासी कार्यों को लागू करने की आवश्यकता है?
मान लीजिए मैं निम्नलिखित है: यह
class Abstract {
public:
virtual void foo() = 0;
virtual void bar();
}
class Derived : Abstract {
public:
virtual void foo();
}
है ठीक उस वर्ग व्युत्पन्न बार() फ़ंक्शन को लागू नहीं करता है? क्या होगा यदि मेरे सभी व्युत्पन्न वर्गों को बार() फ़ंक्शन की आवश्यकता नहीं है, लेकिन कुछ करते हैं। क्या एक सार आधार वर्ग के सभी वर्चुअल फ़ंक्शंस व्युत्पन्न कक्षाओं में लागू किए जाने की आवश्यकता है, या केवल शुद्ध वर्चुअल हैं? धन्यवाद
और यहां तक कि यह (शुद्ध वर्चुअल फ़ंक्शन का कार्यान्वयन) केवल तभी किया जाता है जब उनका इरादा बनने का इरादा होता है (एक सार आधार वर्ग होने के विपरीत)। –
यही मैंने सोचा था। लेकिन मैं अपनी परियोजना में ऐसा कर रहा हूं, और मुझे एक लिंकिंग त्रुटि मिल रही है जिसमें कहा गया है कि व्युत्पन्न :: बार() के लिए "अनसुलझा बाहरी प्रतीक" है; लेकिन मैंने कभी व्युत्पन्न के भीतर बार घोषित नहीं किया, तो लिंकर फ़ंक्शन बॉडी की तलाश क्यों कर रहा है? – mikestaub
@ पिक्सेलपशर निश्चित रूप से 'व्युत्पन्न :: बार' में एक कार्य निकाय है, जो कि सार :: बार' है। तो ऐसा अनुवाद इकाई लगता है जहां इसे परिभाषित किया गया है (क्या यह कहीं भी परिभाषित किया गया है?) अनुवाद इकाई में लिंक नहीं है जहां इसे कहा जाता है। –