0
我是C++的初学者,所以我不确定这是否可行。我想知道是否可以从传递给函数的对象访问动态2D数组。下面是简化的代码:如何从传递给C++函数的对象访问动态二维数组?
类A:B
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;
};
类:
#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数组。我接受所有建议。谁能告诉我如何解决这个问题?谢谢。
让我知道是否需要进一步解释。
什么是您的文件的完整来源? – 2014-11-02 00:45:59
@ Smith_61你是什么意思全部来源?如果你的意思是所有的源代码,那么它太复杂和冗长了,所以我简化了这个问题,作为 – Alias 2014-11-02 01:06:47
以上代码中的一个例子,就像复制错误所需的整个代码一样。我们无法调试我们看不到的东西。 – 2014-11-02 01:20:07