Aynı uygulamayı paylaşan ancak yine de C ++ 'da farklı türde olan birkaç türe sahip olmak istiyorum.
Sorumu basit bir örnekle açıklamak için, hepsi aynı işlemlere ve aynı uygulamaya sahip olan Elma, Portakal ve Muz sınıfına sahip olmak istiyorum. Farklı tiplere sahip olmalarını isterim çünkü tip güvenliği sayesinde hataları önlemek istiyorum.
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 ...
Kodu çoğaltmamak için, bir temel sınıf Fruit kullanıp ondan miras alabilirim gibi görünüyor:
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 {};
Ama sonra, kurucular miras alınmaz ve onları yeniden yazmam gerekir.
Aynı sınıfa farklı türlerle kolayca sahip olmamı sağlayacak herhangi bir mekanizma (yazım biçimleri, şablonlar, kalıtım ...) var mı?