나는 이것이 가능하면 잘 모르겠다. C++의 초보자이다. 함수에 전달 된 객체에서 동적 2D 배열에 액세스 할 수 있는지 알고 싶습니다.C++의 함수에 전달되는 객체에서 동적 2D 배열에 액세스하려면 어떻게합니까?
클래스 A :
class A {
public:
A(int length, int width) {
// initializes the 2d array
}
int** getArray() { return array2d;}
int getLength() { return length;}
int getWidth() { return width;}
private:
int** array2d;
int length, width;
};
클래스 B :
#include "A.h"
class B {
public:
B() {}
void print(A* a) {
int** temp = a->getArray(); // ERROR HERE
for (int i = 0; i < a->getLength(); i++) {
for (int j = 0; j < a->getWidth(); j++)
cout << temp[i][j] << endl;
}
}
private:
int** array2d;
};
하여 Main.cpp :이 오류가 계속
int main() {
A a = new A(15,15);
B b = new B();
b->print(a);
}
: Error 13 error C2086: 'int **A::array2d' : redefinition
여기에 간단한 코드입니다.
2D 배열을 올바르게 전달하는지 잘 모르겠습니다. 나는 모든 제안에 개방적이다. 아무도이 문제를 해결하는 방법을 말해 줄래? 감사.
추가 설명이 필요한 경우 알려 주시기 바랍니다.
파일의 전체 소스는 무엇입니까? –
@ Smith_61 전체 소스 란 무엇입니까? 모든 소스 코드의 의미가 너무 복잡하고 길기 때문에 위의 코드에서 예제를 단순화했습니다. – Alias
오류를 복제하는 데 필요한 전체 코드와 같습니다. 우리가 볼 수없는 것을 디버깅 할 수는 없습니다. –