2つの異なる抽象クラスから、戻り型のみが異なる同じ名前の演算子を継承することは可能ですか。もしそうなら、彼ら:
演算子を実装するための構文は何ですか
演算子を使用/解決するための構文は何ですか
他の仮想関数の場合と同じように、一般的な場合のオーバーヘッドはどのくらいですか?
役立つリファレンスまたはサンプルコードを提供していただければ
ありがとう
12struct abstract_matrix { 13仮想double&operator()(int i、int j); 14}; 15 16 struct abstract_block_matrix { 17仮想double*operator()(int i、int j); 18}; 19 20struct block_matrix:abstract_matrix、abstract_block_matrix { 21 22};
ブロック行列は、両方の演算子の実装を提供する必要があるため、コンテキストに応じて、行列またはブロック行列のいずれかになります。block_matrixクラスに固有の実装を提供する方法がわかりません。今のところ、これは最後の引数としてオブジェクトラップ型を渡すことによって行われますが、それはあまりきれいではないようです。純粋な行列表記を保持したいと思います。