0

私は C++ の初心者で、この Web サイトから多くの恩恵を受けています。

数日間取り組んできた質問があり、かなり行き詰まっています。

私の問題のより単純なバージョンを提供するために、たとえば、ProMatrix と呼ばれる完全に機能するクラス (ダウンロードされたライブラリ) があります。このクラスは、加算、減算、乗算など、あらゆる種類の行列演算を実行します。

また、MyMatrix と呼ばれる (派生) マトリックス クラスのバージョンも作成しました。MyMatrix クラスに ProMatrix と同じ種類の行列演算を実行させたいのですが、MyMatrix 形式で返してもらいたいのです。これを行うためのショートカットはありますか???

私はウェブサイトを調べましたが、そこにある例は void 出力のみを扱っており、これらの関数は内部ではあまり機能しません。

派生クラスで基本クラス関数を再利用するにはどうすればよいです か.htm

ストーリーの長いバージョン (元の問題): 行列演算を行うために TNT をダウンロードしましたが、どういうわけか逆または転置が見つかりません... :(
http://wiki.cs.princeton.edu/index.php/ TNT そこで、親切な人が必要な 2 つの関数を書いているのを見て、苦労しましたが、ダウンロードしたヘッダー ファイルを変更することでそれらを TNT に組み込むことができましたが、元のコードに触れるのはちょっと危険なようです。これらの関数を追加するために独自のヘッダー ファイルを作成するので、TNT の Array2D から派生した独自の行列クラスを、親クラスのすべてのプロパティと、逆変換と転置を使用して作成できるのではないかと考えました。

それを行うためのより良い、よりクリーンな方法があると確信しています...この問題へのアプローチ方法をお勧めしますか? 私は C++ のスキルを伸ばしたいと思っています。お時間を割いて助けていただければ幸いです。

4

1 に答える 1

0

通常のアプローチは、追加操作用のフリー関数を作成することです。元のクラス型の引数を取ります。そう:

void transpose(ProMatrix& m); // transpose m in place

また

ProMatrix transpose(const ProMatrix& m); // return transpose of m
于 2013-06-06T01:57:49.410 に答える