Ich entdecke C++ und ich möchte eine Mini-mathematische Matrix librairy mit Vorlagen erstellen.C++ Operator Überladung Vorlage mit verschiedenen Argumenten
Hier möchte ich den Operator * überladen.
Wenn ich eine Matrix wie folgt beschreiben: M(y, x)
mit M
die Matrix Namen, y
und x
die Höhe und die Breite, eine Matrixmultiplikation so aussehen sollte:
M(a, b) * N(b, c) = R(a, c)
Zur Zeit habe ich diesen Code:
template<unsigned int y, unsigned int x>
class Matrix
{
public:
Matrix() { }
~Matrix() { }
Matrix<y, x2>& operator*(const Matrix<y2, x2>& right)
{
// code...
}
private:
std::array<std::array<double, x>, y> m_values;
};
So würde Ich mag Lage sein, zwei differents wie die Matrix zu multiplizieren:
Matrix<3, 4> m;
Matrix<4, 2> n;
// fill the matrix with values
Matrix<3, 2> o = m * n;
Ich habe gesucht, aber ich habe die Antwort auf diese Frage nicht gefunden (vielleicht weil ich nicht wirklich weiß, was ich genau suchen muss).
Vielen Dank für Ihre Hilfe :)