동일한 구현을 공유하지만 C ++에서 여전히 다른 유형 인 여러 유형을 갖고 싶습니다.
간단한 예제로 내 질문을 설명하기 위해 Apples, 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, 템플릿, 상속 ...)이 있습니까?