如何传递 2D 矩阵以运行

How to pass a 2D matrix to function

本文关键字:运行 何传递 2D      更新时间:2023-10-16

我正在使用类添加矩阵。我已经声明了一个类"矩阵"。现在我需要将矩阵的对象传递给函数。我该怎么做?

实际上,最好的方法(恕我直言)是重载operator+()。因此,在您的代码中,您只需要使用 +

class Matrix {
    private:
        // Your code
    public:
        // Your code
        friend Matrix operator+(const Matrix &c1, const Matrix &c2);
}
friend Matrix operator+(const Matrix &c1, const Matrix &c2) { <--- passing by reference
    // Your code to add matrices
}
int main() {
    Matrix A, B;
    Matrix C = A + B;
}

在传递值Matrix sum(Matrix a, Matrix b)的情况下,如果矩阵的内存是动态分配的,则需要编写一个复制构造函数。

通过指针传递Matrix sum(Matrix *a, Matrix *b)是 C 样式编码,因此它仍然是正确的,但对于C++来说不是可取的。

Matrix object;
// ...
f(object);

你有很多方法可以做到这一点。

按值:

void func (Matrix m);

参考资料:

void func (Matrix& m);

或按指针:

void func (Matrix* m);

使用哪一个取决于您的需求和操作语义。