如何从传递给c++中的函数的对象访问动态2D数组
How do I access a dynamic 2D array from an object which is passed to a function in c++?
我是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阵列。我对所有的建议都持开放态度。有人能告诉我如何解决这个问题吗?谢谢
如果需要进一步解释,请告诉我。
好的,我想我发现了问题,错误号表明你正在重新定义某个东西,我认为这是array2d
的名称,因为在两个类中你使用了相同的名称。希望更改名称能对您有所帮助
我还建议您将函数void print(A* a)
中的参数a
的名称更改为void print(A* objA)
,可能这里有问题。
相关文章:
- 如何创建对象函数指针C++映射?
- 为什么我可以改变常量对象中的成员变量,这是返回常量对象函数的结果?
- 如何将对象函数的实例传递给另一个函数
- 调用模板函数的问题"No matching function for call"参数:迭代器、对象函数
- makefile对我的名称空间对象/函数/构造函数的不确定引用
- 将对象函数转换为函数指针
- 非对象函数/类函数C++
- 线程对象函数 C++
- C 将成员对象函数分配给类成员功能
- 使用基本指针调用派生对象函数
- 可以(通过编译器)使用多少个线程来初始化全局对象(函数main之前)
- C++类对象函数
- 对对象::函数的未定义引用
- 无法弄清楚将多个对象函数作为单独的线程调用的语法
- 在提升作用域出口中调用对象函数
- 使用基指针来使用派生对象函数
- 在for_each lambda 中调用对象函数
- C++:: 模板函数 - 从对象函数获取对象的地址
- Qt5 未解析的外部静态元对象函数
- 通过变量使用对象和对象函数