gpt4 book ai didi

c++ - 在 C++ 中复制数组 - 引用

转载 作者:行者123 更新时间:2023-11-28 00:00:09 25 4
gpt4 key购买 nike

我有一个 matrix2d 类,它由一个双 A[2][2] 组成。我正在尝试做一个构造函数,它采用相同类型的对象并将其所有值复制到 A[2][2]。我有一个问题,这是类(class):

class matrix2D {
public:
double A[2][2];
double Z[2][2];

//Default Constructor.
matrix2D() {
A[0][0] = A[1][1] = 1;
A[0][1] = A[1][0] = 0;
}

matrix2D(double x00,double x01, double x10, double x11) {
A[0][0] = x00;
A[0][1] = x01;
A[1][0] = x10;
A[1][1] = x11;
}

现在我要创建一个构造函数,它接受 matrix2D 对象,然后将其所有值传递给 A。

// Copy Constructor.
matrix2D(matrix2D& Z) {
for(int i = 0; i < 2; ++i) {
for(int j = 0; j < 2; ++j) {
A[i][j]=*(Z[i][j]);
}
}
}

它告诉我,我尝试将 double 分配给 matrix2d 对象。为什么 *Z[i][j] 不引用 double ?

已解决:我做了 A[i][j]=Z.A[i][j] :)!

最佳答案

该行中的 * 没有意义。

鉴于数据,您根本不需要复制构造函数。但是,如果您必须实现一个,则需要遵循以下原则:

// Use const&, not just &.
// Use a more suitable variable name for the copy
matrix2D(matrix2D const& copy) {
for(int i = 0; i < 2; ++i) {
for(int j = 0; j < 2; ++j) {
A[i][j]= copy.A[i][j]; // Copy A
Z[i][j]= copy.Z[i][j]; // Copy Z.
}
}
}

关于c++ - 在 C++ 中复制数组 - 引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39794870/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com