一般的なソート済みリンクリストを作成したいと思います。したがって、純粋な演算子<を使用した抽象クラスDataがあります(リストを簡単に並べ替えるためです。これはcomperatorと呼ばれると思います)。これで、Dataから派生して演算子を実装するクラスJobができました。ジョブのリストを作成しようとして、そのジョブも抽象的であることがわかった場合、問題が発生します。これは、私がJobで書いた演算子が、Data-indataとまったく同じ署名を持っていないために発生します。
virtual bool operator<(const Data& other) const =0;
と仕事で:
virtual bool operator<(const Job& other) const;
ジョブを一般的なデータと比較できないため、ジョブのオペレーターでジョブを受け取る必要がありました。しかし、今では、新しい演算子は、古い演算子をオーバーライドする(または純粋であるために実装する)のではなく、古い演算子を非表示にするだけです。ダウンキャストを使用せずに問題を解決するにはどうすればよいですか?ありがとう!編集:テンプレートなし。