bool冒号初始化

时间:2012-08-06 15:33:19

标签: c++ boolean colon

在阅读一些C ++代码时,我看到并且被一个类中的这个小行弄糊涂了:

bool x:1;

在调试版本中,我注意到'x'被初始化为'false',但我找不到任何关于它的文档。谁能告诉我这种语法有什么用呢?

1 个答案:

答案 0 :(得分:9)

这是位字段。阅读c ++教科书中的位字段。

false的初始化与声明无关。是否由您的代码保证取决于您的代码(未给出)。

c ++标准为编译器提供了大小为1的整数和枚举位域的余地:在这样的字段中存储值1,您可以得到值-1。幸运的是,这仅适用于大小为1的字段,并且不适用于bool类型的字段。