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