我是使用全局类对象数组的新手,我正在尝试创建相同的对象,但是有错误。
Object.cpp
class Foo {
public:
bool a = false;
};
Funtion.cpp
Foo* foos[10]
void DoSomething1(int index) { // index input is given sequentially from 0 to 10
if ( foos[index]->a == false) {
foos[index]->a = true;
DoSomething2(index);
}
但是如果索引为0时if语句出现一次。 当index为1时,“ foos [index]-> a”已经为true。 但这不是我想要的。 在输入if语句之前,我希望所有的“ foos [index]-> a = false”。
我的代码有什么问题?
答案 0 :(得分:1)
您实际上并没有创建任何Foo
,仅创建了Foo*
的数组,因此访问foos[index]->a
实际上是未定义的行为。
尽管取决于您的实际需求,但将其更改为Foo foos[10]
即可使用。