我正在尝试用c ++实现Matrix类。我在尝试让赋值运算符工作时遇到问题。此时我迷失了。问题是我收到的错误是"矢量下标超出了范围"。如果我从赋值重载运算符中取出this->size = A.size;
代码,编译器就不会抱怨。赋值运算符应该返回对Matrix对象的引用。我尝试创建一个新的Matrix对象,但这给了我同样的错误。任何提示?
**Matrix.hpp**
class Matrix
{
private:
int size; //size of matrix
double value;
std::vector<double> M;
public:
...
}
**Header.cpp**
Matrix& Matrix::operator=(const Matrix& A)
{
if (this == &A)
{
return *this;
}
else
{
this->size = A.size; // this is causing problems
return *this;
}
}
答案 0 :(得分:2)
当您将一个矩阵分配给另一个矩阵时,您不仅需要更改大小数据成员,还需要更改其他数据成员,例如调整双精度矢量的大小。