Odkrywam C++ i chciałbym stworzyć mini matematyczną bibliotekę Matrix przy użyciu szablonów.Szablon przeciążenia operatora C++ z różnymi argumentami
Tutaj chcę przeciążać operatora *.
Jeśli mogę opisać matrycę tak: M(y, x)
z M
nazwa macierzy y
i x
wysokość i szerokość, mnożenie macierzy powinien wyglądać tak:
M(a, b) * N(b, c) = R(a, c)
Obecnie mam ten kod:
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;
};
Więc chciałbym, aby móc się rozmnażać dwa differents matryca tak:
Matrix<3, 4> m;
Matrix<4, 2> n;
// fill the matrix with values
Matrix<3, 2> o = m * n;
Szukałem, ale nie znalazłem odpowiedzi na to pytanie (może dlatego, że tak naprawdę nie wiem, co muszę dokładnie przeszukać).
Dzięki za pomoc :)