共通の動作と同じコンストラクタと演算子を持ついくつかの型があります。いくつかのように見える:構造的に同一のクラスを区別するC++
class NumberOfFingers
{
public:
void operator=(int t) { this->value = t; }
operator int() const { return this->value; }
private:
int value;
};
は同じです。
各クラスは異なる振る舞いを持ち、ここでの例です:
std::ostream& operator<<(std::ostream &s, const NumberOfFingers &fingers)
{
s << fingers << " fingers\n";
}
std::ostream& operator<<(std::ostream &s, const NumberOfFingers &toes)
{
s << toes << " toes\n";
}
どのように私は明確なクラス型を維持しながら、クラス定義で重複を最小限に抑えることができますか? NumberOfFingers
とNumberOfToes
は、コンストラクタと演算子を失うので、共通の基底クラスから派生させたくありません。私はよい答えがテンプレートを含むだろうと思います。
を伴うだろうという点で、はい、あなたは正しいですか? –
@Björn何を言ってるの?派生クラスは独自クラスを持たない場合、常に基本クラスのコンストラクタと演算子を使用できますか? – paperjam