我一直在我的代码的某个位置发现运行时错误,并将其缩小为初始化为205的bool。我看了这个问题,这显然是未初始化的bool可以拥有的垃圾。
好的,但是我把它初始化了。此布尔值位于头文件的专用部分中。该类包含一个设置值的方法,另一个包含返回值的方法。漂亮的沼泽标准的东西。所以我设置了一个快速的小测试。
thing.setValue(false);
cout << thing.getValue() <<endl;
(不是实际的名字,只是为了保持简单) 它仍然吐出205.字面上一个声明设置变量,然后下一个只是要求重复它,它给了我垃圾。
有些困惑,我看了一下头文件。在标题中的int
上方声明了bool
,所以我对那个进行了类似的测试。它工作得很好。我在标题中交换了两个的顺序。现在bool
正常,而int
却没有。所以在这两个标题上面有一个vector<int>
,结果我不再使用,因为我已经替换了使用它的方法。所以我删除它,瞧,它现在有效。
我似乎无法找到任何相关信息。我想我可能只是不知道要搜索什么来找到答案。我希望这是一个非常明显和愚蠢的错误,一个更有经验的人可以打我的头,所以我可以继续前进。
对于代码示例,它只是一个简单的头文件,就像其他任何看起来像
的头文件一样#ifndef concept_H
#define concept_H
class concept {
private:
//...
//...
//...
int x;
bool y;
public:
//bunch of methods//
void setY(bool whatever);
bool isY();
};
#endif
方法实现同样微不足道
void concept::setY(bool whatever){
y=whatever;
}
bool concept::isY(){
return y;
}
这不是实际的代码;在外围有很多其他的东西,我只是不知道要包括哪些相关。再次希望这是我犯的一个愚蠢的错误,有人可以马上告诉我,但如果不是,我可以提供更多。我只需要帮助甚至知道从哪里开始看。
答案 0 :(得分:2)
不,您可以声明的变量数量没有设置限制。这不是你问题的原因。