আমি একাধিক প্রকারের একই রূপায়ণ ভাগ করে নিতে চাই তবে এখনও সি ++ এ বিভিন্ন ধরণের।
একটি সাধারণ উদাহরণ দিয়ে আমার প্রশ্নটি বর্ণনা করার জন্য, আমি আপেল, কমলা এবং কলাগুলির জন্য একটি ক্লাস করতে চাই, সমস্ত একই ক্রিয়াকলাপ এবং একই প্রয়োগকারী। আমি তাদের বিভিন্ন ধরণের থাকতে চাই কারণ টাইপ-সুরক্ষার জন্য আমি ত্রুটিগুলি এড়াতে চাই।
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 {};
তবে তারপরে, কনস্ট্রাক্টররা উত্তরাধিকার সূত্রে প্রাপ্ত হয় না এবং তাদের পুনরায় লিখতে হয়।
এমন কোনও ব্যবস্থা আছে (টাইপডেফস, টেমপ্লেটস, উত্তরাধিকার ...) যা আমাকে সহজেই বিভিন্ন ধরণের সমান শ্রেণিতে থাকতে দেয়?