C++ 中 bool 是一个基本类型,可以通过各种方法来模拟它,但是都存在不同的缺陷:
- 使用 typedef 模拟,bool 不允许重载。
- 使用 #define,bool 不允许重载且通常破坏了 #define。
- enum bool允许重载但在条件表达式中不能进行自动类型转换。bool b = (i == j)是错误的,因为 int 不能隐含地转换成 enums。
- bool 类允许重载但不能让 bool 对象在条件中作测试,除非它能提供自动转换到基本类型,但是提供自动转换却通常会干扰函数重载解析过程。
文章来源:
http://my.donews.com/robinchow/2007/01/15/bszvusphgepqbphvticopjkpfadfapccibyd/