operator bool() 是什么意思?? C++高手进

来源:百度知道 编辑:UC知道 时间:2024/04/28 01:54:11
在<bitset>头文件里看到下面的函数:
operator bool() const
{ // return element
return (_Pbitset->test(_Mypos));
}
请问operator bool() const这是什么意思啊?
对bool 进行了什么操作? 怎么调用这个函数??
知道的给详细点 谢谢!!~!~

三个回答,没一个正解。
这个不过是提供一个本类型对象到bool的隐式转换罢了。
比如ofstream

ofstream ofs("output.txt");
if( ofs )
{ // todo
}

operator是运算符重载关键字,operator 和()中间就是要重载的东东,可以是常规运算符(比如,+ - * / > < = 等等),也可以是类型转换运算符(比如, (int) (bool) (char *) 等等),例如:
int operator +() 重载了 + 号运算符
int operator bool() 重载了 (bool) 类型转换运算符

假如重载了(bool),可以这样用
int a = 1; // 定义一个整数
cout<<((bool)a)<<endl; // 将整数用(bool)型输出

更详细请看http://hi.baidu.com/eli261/blog/item/4efd0cfaab14699059ee9027.html

重载类型转换运算符,在以下两种情况下会调它:
T tObj; // 用T来代替你的类类型
bool bVal = (bool)tObj; // 显式强制类型转换
if (tObj) { } // 在需要的地方会进行隐式转换

重载函数调用运算符,这才是针对()进行的重载。
bool operator()(int) // 形参根据需要自定义
{
return true;
}
调用它的语句是:bVal = tObj(8);

第二种就是所谓的仿函数

operator是运算符重载