簡體   English   中英

C ++賦值運算符中的矩陣類

[英]Matrix class in c++ assignment operator

我正在嘗試在C ++中實現Matrix類。 我在嘗試讓賦值運算符工作時遇到問題。 在這一點上我迷路了。 問題是我收到一個錯誤消息,說“向量下標超出范圍”。 如果我this->size = A.size;這段代碼,則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;
    }
}

將一個矩陣分配給另一個矩陣時,不僅需要更改大小數據成員,還需要更改其他數據成員,例如調整double型向量的大小。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM