标题中可以有太多变量吗?

Can you have too many variables in a header?

本文关键字:变量 太多 标题      更新时间:2023-10-16

>我在代码的一个地方不断收到运行时错误,并将其缩小到初始化为 205 的布尔值。我查了这个问题,这显然是未初始化的布尔值可以有的垃圾。

好的,但我初始化了它。此布尔值位于头文件的私有部分中。该类包含一个用于设置值的方法和另一个用于返回值的方法。相当沼泽标准的东西。所以我设置了一个快速的小测试。

thing.setValue(false);
cout << thing.getValue() <<endl; 

(不是实际名称,但只是为了简单起见) 它仍然吐出205。从字面上看,一个语句设置了变量,然后下一个语句只是要求重复它,它给了我垃圾。

有些困惑,我看了一下头文件。在标题中bool的正上方声明了一个int,所以我对那个进行了类似的测试。它工作得很好。我在标题中交换两者的顺序。现在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;
}

这不是实际的代码;外围还有很多其他的东西,我只是不知道该包含哪些相关内容。再次希望这是我犯的一个愚蠢的错误,有人可以立即告诉我,但如果不是,我可以提供更多。我只需要帮助,甚至知道从哪里开始寻找。

不,您可以声明的变量数量没有设置限制。 这不是您问题的原因。