行列を表す 2 つのクラスがあり
ます。1. RegularMatrix - O(n^2) 表現
2. SparseMatrix - リンクされたリスト (ゼロなし) として表される行列。
私が持っているとしましょう:
RegularMatrix a;
SparseMatrix b;
私はできるようになりたい:
a+b;
また:
b+a;
だから私は + 演算子をオーバーロードしています。私の質問は、追加を可換 (a+b = b+a) にしたいので、ケースごとに 1 つずつ、2 つのオーバーロードを実装する必要があるかどうかです。
RegularMatrix operator+(const RegualarMatrix &, const SparseMatrix &);
RegularMatrix operator+(const SparseMatrix & ,const RegualarMatrix &);
または、コンパイラが独自に決定する一般的な形式はありますか?
ありがとうございました