你能在标题中包含太多变量吗?

时间:2018-02-28 21:34:39

标签: c++ boolean

我一直在我的代码的某个位置发现运行时错误,并将其缩小为初始化为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;
}

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

1 个答案:

答案 0 :(得分:2)

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