在C ++中,如何从ClassB访问ClassA中的多维数组?

时间:2018-10-20 11:17:49

标签: c++ arrays oop

“ ClassA.h”

class ClassA {
public:
classArray[10][5];

void loadArray(){
//loads ints into array
}
};

“ ClassB.h”

class classB {
void outputArray(){
ClassA classA;
cout << classA.classArray[1][1];
}

};

每当我打印数组[1] [1]时,它将输出0到控制台。尽管已将7020装入其中。主要都调用了这两个函数。

2 个答案:

答案 0 :(得分:1)

执行此操作时:

ClassA classA;
cout << classA.classArray[1][1];

您调用未定义行为(UB),因为classA的数组已未初始化使用。首先,将整数加载到其中并打印出来,所以您可能需要这样做:

ClassA classA;                       // create an object
classA.loadArray();                  // fill the array of the object
cout << classA.classArray[1][1];     // print a specific element

答案 1 :(得分:1)

您有一个用换行符初始化的ClassA实例,并且尚未在其上调用loadArray。明确地调用它:

ClassA classA;
classA.loadArray(); // Here
cout << classA.classArray[1][1];

或者,如果可能的话,请考虑将此逻辑移至ClassA的构造函数中。