同じ実装を共有しているが、C ++ではまだ異なるタイプのいくつかのタイプが欲しいのですが。
簡単な例で私の質問を説明するために、すべて同じ操作と同じ実装を持つApple、Oranges、およびBananasのクラスが必要です。型安全性のおかげでエラーを避けたいので、それらに異なる型を持たせたいです。
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 ...
コードを複製しないために、基本クラスのFruitを使用して、そこから継承できるようです。
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 {};
しかし、コンストラクターは継承されないので、書き直す必要があります。
異なるタイプの同じクラスを簡単に持つことができるメカニズム(typedef、テンプレート、継承...)はありますか?