gpt4 book ai didi

c++ - 如何从传递给 C++ 函数的对象访问动态二维数组?

转载 作者:行者123 更新时间:2023-11-28 06:36:31 26 4
gpt4 key购买 nike

我是 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;
};

主要.cpp:

int main() {
A a = new A(15,15);
B b = new B();

b->print(a);
}

我不断收到此错误:Error 13 error C2086: 'int **A::array2d' : redefinition

我不确定我是否正确传递了二维数组。我愿意接受所有建议。谁能告诉我如何解决这个问题?谢谢。

如果需要进一步解释,请告诉我。

最佳答案

好吧,我想我发现了问题,错误号表明你正在重新定义一些东西,我认为它是 array2d 的名称,因为在两个类中你都使用相同的名称。希望更改名称对您有所帮助。
而且我还建议您将函数void print(A* a) 中的参数a 的名称更改为void print(A* objA) ,可能问题出在这里。

关于c++ - 如何从传递给 C++ 函数的对象访问动态二维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26694788/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com