博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c++ operator
阅读量:4947 次
发布时间:2019-06-11

本文共 989 字,大约阅读时间需要 3 分钟。

这篇博文是以前很久写的,贴在我的早期一个blog中,今天google一下,发现还真有不少人转载,可惜并不注明出处。那时觉得operator比较好玩。C++有时它的确是个耐玩的东东。operator它有两种用法,一种是operator overloading(操作符重载),一种是operator casting(操作隐式转换)。1.operator overloadingC++可以通过operator 重载操作符,格式如下:类型T operator 操作符 (),如比重载+,如下所示[cpp] view plaincopytemplate
class A { public: const T operator + (const T& rhs) { return this->m_ + rhs; } private: T m_; }; 又比如STL中的函数对象,重载(),这是C++中较推荐的写法,功能与函数指针类似,如下所示template
struct A { T operator()(const T& lhs, const T& rhs){ return lhs-rhs;} }; 2 operator castingC++可以通过operator 重载隐式转换,格式如下: operator 类型T (),如下所示class A { public: operator B* () { return this->b_;} operator const B* () const {
return this->b_;} operator B& () { return *this->b_;} operator const B& () const {
return *this->b_;} private: B* b_; }; A a;当if(a),编译时,其中它转换成if(a.operator B*()),其实也就是判断 if(a.b_)

 

转载于:https://www.cnblogs.com/zzyoucan/p/4845235.html

你可能感兴趣的文章
ERROR:bokeh.core.validation.check:E-1001 (BAD_COLUMN_NAME) 就是补存在这个列名
查看>>
assert 的作用是什么?
查看>>
收藏夹(持续更新)
查看>>
iOS中的#import和class区别
查看>>
节约内存,请使用标签页管理工具:onetab、better onetab
查看>>
jQuery中的事件与动画
查看>>
页面加载骨架
查看>>
关于android系统不关屏设置
查看>>
SONY VPCS138EC降级安装XP
查看>>
[luogu4201][bzoj1063]设计路线【树形DP】
查看>>
手机抓包-手机劫持域名到指定服务器
查看>>
被放逐的皇后 金建云
查看>>
Javascript 有用参考函数
查看>>
点群的判别(三)
查看>>
GNSS 使用DFT算法 能量损耗仿真
查看>>
网页抓取 总结
查看>>
【vue】vue中v-charts的使用
查看>>
【转】Simulink模型架构指导
查看>>
MYSQL数据库的导出的几种方法
查看>>
SQL Server-5种常见的约束
查看>>