如何传递 2D 矩阵以运行
How to pass a 2D matrix to function
我正在使用类添加矩阵。我已经声明了一个类"矩阵"。现在我需要将矩阵的对象传递给函数。我该怎么做?
实际上,最好的方法(恕我直言)是重载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);
使用哪一个取决于您的需求和操作语义。
相关文章:
- 如何使用传递给编译器的相同参数在 cmake 中运行命令?
- JNA - 传递字符* 以运行
- 将包含二进制数据的 QByteArray 传递到按值运行
- C++代表团?(传递要运行的函数)
- 在传递 com 变体时运行 excel 宏崩溃
- 如何运行外部程序,向其传递内存地址以读取/写入?
- 如何将参数传递给已经开始运行的线程
- 传递数组结构、ofstream 和 interger 以运行
- 传递指向量以在 c++ 中运行
- 如何使用模板生成常规参数列表并将其传递给运行时函数?
- 在 2 个并行运行的脚本(python 和 C++)之间传递消息
- 将字符串指针传递到C++和Xcode 11.1中不同线程上运行的函数
- 当数组大小在C++中未知时,如何在运行时将对字符串数组的引用作为函数参数传递?
- 从 CMD 运行.exe并自动向其传递参数
- 为什么无法通过按值调用传递互斥锁以运行
- 将未知结构(在运行时)作为模板参数传递
- 无法传递多维数组以运行
- PHP 网站在传递图像作为参数时未运行 exec 函数
- 如何在运行qmake时将变量传递到qmake项目文件
- 触发Java Jar用C 运行并传递字符串