免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3898 | 回复: 4
打印 上一主题 下一主题

[函数] 这个operator的函数是什么含义? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-07-19 09:26 |只看该作者 |倒序浏览
  1. #include<iostream>
  2. class test{
  3. public:
  4.   test(int _a):a(_a){}
  5.   operator int()const { return a;}  

  6. private:
  7.   int a;
  8. };
复制代码


上面代码中operator部分是什么意思呢?
和我以前看到的operator的定义是不同的,而且如果改成
  1. operator int()()
复制代码

编译会出错!

论坛徽章:
0
2 [报告]
发表于 2006-07-19 09:41 |只看该作者
定义将 test 强制类型转换为 int 型时的行为

论坛徽章:
0
3 [报告]
发表于 2006-07-19 09:52 |只看该作者
定义将 test 强制类型转换为 int 型时的行为


多谢指教!

论坛徽章:
0
4 [报告]
发表于 2006-07-19 12:17 |只看该作者
c++真是博大精深....
thx

论坛徽章:
0
5 [报告]
发表于 2006-07-19 14:26 |只看该作者
原帖由 isjfk 于 2006-7-19 09:41 发表
定义将 test 强制类型转换为 int 型时的行为

看来是平时 C 用多了,一写到类型转换就自动加上了“强制”这个词。实际上 test 类重载 operator int() 不仅仅是用在强制类型转换上的。你可以把 test 类当成一个 int 用。比如一个函数要求 int 类型的参数,就可以直接把 test 传递进去。当然某些编译器无法确定类型的时候还是需要强制类型转换的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP