मैं कई प्रकारों को लागू करना चाहूंगा जो समान कार्यान्वयन को साझा करते हैं लेकिन फिर भी C ++ में विभिन्न प्रकार के हैं।
एक साधारण उदाहरण के साथ अपने प्रश्न को स्पष्ट करने के लिए, मैं एक ही संचालन और एक ही कार्यान्वयन वाले सेब, संतरे और केले के लिए एक वर्ग रखना चाहूंगा। मैं उन्हें अलग-अलग प्रकार के चाहूंगा क्योंकि मैं टाइप-सेफ्टी के लिए त्रुटियों से बचना चाहता हूं।
class Apple {
int p;
public:
Apple (int p) : p(p) {}
int price () const {return p;}
}
class Banana {
int p;
public:
Banana (int p) : p(p) {}
int price () const {return p;}
}
class Orange ...
कोड को डुप्लिकेट नहीं करने के लिए, ऐसा लगता है कि मैं एक बेस क्लास फल का उपयोग कर सकता हूं और इससे विरासत में मिला:
class Fruit {
int p;
public:
Fruit (int p) : p(p) {}
int price () const {return p;}
}
class Apple: public Fruit {};
class Banana: public Fruit {};
class Orange: public Fruit {};
लेकिन फिर, कंस्ट्रक्टरों को विरासत में नहीं मिला है और मुझे उन्हें फिर से लिखना होगा।
क्या कोई तंत्र (टाइप्डफ्स, टेम्प्लेट, इनहेरिटेंस ...) है जो मुझे आसानी से विभिन्न प्रकारों के साथ एक ही वर्ग रखने की अनुमति देगा?