“ 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装入其中。主要都调用了这两个函数。
答案 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
的构造函数中。