나는 dobule A [2] [2]로 구성된 matrix2d 클래스를가집니다. 나는 같은 타입의 객체를 취하고 모든 값을 A [2] [2]로 복사하는 생성자를 시도하고있다. I은 문제가 있다면, 여기에 클래스 :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]가 이중을 참조하지 않는 이유는 무엇입니까?
해결 : 나는 [[i] [j] = Z.A [i] [j] :)!
동일한 오류 : '연산자 []'과 일치하지 않음 (피연산자 유형이 'matrix2d'및 'int') –
왜 '*'입니까? 관련된 포인터가 없습니다. –
컴파일러가 그 일을하도록하십시오. 그것은 옳은 일을하는 복사 생성자를 만들 것입니다. – juanchopanza