我用这个成员函数重载了 *= 运算符:
template<class U>
Matriz<T> & operator*=(const Matriz<U> & valor);
而且我还有一个像这样的矩阵构造函数:
Matriz(const std::vector<T> & vector);
好吧,我想做这样的事情:
double vetor[3] = { 1, 2, 3 };
std::vector<double> vec(vetor, vetor + 3);
Matriz<double> A("src//imatriz.dat"); //Creates a matrix with parameters from a file.
A*=vec;
也就是说,我想将一个矩阵乘以一个向量。问题是编译器返回运算符不匹配。
---编辑2---
正如建议的那样,我也试过这个:
template<class U>
friend Matriz<T> & operator*=(Matriz<U> & lhs, const Matriz<U> & rhs)
但 A*=vec 仍然不起作用。
任何想法?如果您需要更多代码,可以将其放在这里。