私はdobule A [2] [2]からなるmatrix2dクラスを持っています。私は、同じ型のオブジェクトを取るコンストラクタを実行しようとしており、すべての値をA [2] [2]にコピーします。私は、問題を抱えてここにクラスです:C++で配列をコピーする - リファレンス
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]);
}
}
}
にそのすべての値を取るそれは私のこと私に伝えますmatrix2dオブジェクトにdoubleを代入しようとします。 * Z [i] [j]が二重引用符を参照しないのはなぜですか?
解決: 私はA [i] [j] = Z.A [i] [j] :)を行いました!
同じエラー: 'operator []'と一致しません(オペランドタイプは 'matrix2d'と 'int') –
なぜ '*'ですか?関与するポインタはありません。 –
コンパイラに任せてください。それは正しいことを行うコピーコンストラクタを作成します。 – juanchopanza