在C++中所特有的另一种内置类型bool。它只是一种特殊情况,因为对于布尔值,我们并不需要像++这样的操作符。反之,我们需要特定的布尔操作符,例如&=和|=,因此,这个类型是单独定义的:
class Bool
{
public:
Bool(bool x=false)
: data_(x)
{
}
operator bool () const
{
return data_;
}
Bool& operator = (bool x)
{
data_ = x;
return *this;
}
Bool& operator &= (bool x)
{
data_ &= x;
return *this;
}
Bool& operator |= (bool x)
{
data_ |= x;
return *this;
}
private:
bool data_;
};
inline
std::ostream& operator << (std::ostream& os, Bool b)
{
if(b)
os << "True";
else
os << "False";
return os;
}
同样,和其他包装了内置类型的类一样,Bool类型的行为与bool类型(原先的内置类型)完全相同,仅有的区别在于如下两点:
</