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

[复制链接]
查看11 | 回复3 | 2009-7-14 14:58:47 | 显示全部楼层 |阅读模式
头文件里看到下面的函数:
operator bool() const
{ // return element

return (_Pbitset->test(_Mypos));
}
请问operator bool() const这是什么意思啊?
对bool 进行了什么操作? 怎么调用这个函数??
知道的给详细点谢谢!!~!~

回复

使用道具 举报

千问 | 2009-7-14 14:58:47 | 显示全部楼层
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/4efd0c...
回复

使用道具 举报

千问 | 2009-7-14 14:58:47 | 显示全部楼层
重载类型转换运算符,在以下两种情况下会调它:T tObj;// 用T来代替你的类类型bool bVal = (bool)tObj;// 显式强制类型转换if (tObj) { } // 在需要的地方会进行隐式转换重载函数调用运算符,这才是针对()进行的重载。bool operator()(int)// 形参根据需要自定义...
回复

使用道具 举报

千问 | 2009-7-14 14:58:47 | 显示全部楼层
三个回答,没一个正解。这个不过是提供一个本类型对象到bool的隐式转换罢了。比如ofstreamofstream ofs("output.txt");if( ofs ){ // todo}...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行