Я новичок в C++, поэтому я не уверен, что это возможно. Я хочу знать, могу ли я получить доступ к динамическому 2D-массиву из объекта, который передается функции. Вот упрощенный код:Как получить доступ к динамическому 2D-массиву из объекта, который передается функции в C++?
Класс 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
Как и во всем коде, необходимом для репликации ошибки. Мы не можем отлаживать то, что мы не можем видеть. –