C++中void和bool的区别是什么呀

如题所述

C++把类型分为四类,即 object types(对象类型)、function types(函数类型)、reference types(引用类型)、void types。四者的性质有显著区别,例如不存在指向 void types 的引用和指向 reference type 的引用,除了具有 function types 的实体(也就是“函数重载”),其他实体不可重名。 bool 类型属于 object types。显然,在分类中,void 和 bool 就属于不同的层级。

按照定义,void 表示一个“取值范围为空集”的类型。规定如果函数声明为返回 void 类型,则表示函数不返回任何值。可以把任意表达式显式转换到 void 类型,其效果是丢弃表达式的值(对于具有类类型 class type 的表达式,不会调用 conversion function,即使这个类确实有名为 operator void 的成员函数)

bool 类型的取值可以是 true 或 false 。一些语法结构需要把表达式转换为 bool 类型(例如 if 语句和 while 语句中的条件),如果表达式具有类类型 class type,表达式的 conversion function 会被考虑。在 C++11 以后,即使选中的 conversion function 被声明为 explicit,也同样会被调用(虽然语句 if (e){} 中没有写出 static_cast<bool>(e) 这样的表达式,但是把 e 转换为 bool 类型的转换视作显式转换,而非隐式转换)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-10-24
void 是空类型,做完函数的返回值类型相当于返回空return;就可以了,bool在C++中0为假,非0为真,可以用来做判断,void* 可以强制转换为任何类型,我能想到的就这些了
第2个回答  2012-04-12
void 无类型,或者可以说是未指定类型。即一个变量的类型是未指定的。C++是一门强类型的语言,void类型的变量是不允许对你进行操作的,一般后续会使用强制类型转换,转换为其它确定的类型再操作。
用在函数声明中,意思就是该函数不需要返回值。

bool 布尔类型。是一种确定的类型。本回答被网友采纳
第3个回答  2012-04-12
void是无类型,一般在用在函数时表示这个函数是一个过程也就是无返回值的
bool 是逻辑型有 true 和 false
第4个回答  2012-04-12
“void”是无返回类型的类型;

“bool”的返回类型只有两个值:“true”和“false”。
相似回答