C++中的operator,有两种用法,一种是operator overloading(操作符重载),一种是operator casting(操作隐式转换)。下面分别进行介绍:

1.operator overloading
C++可能通过operator 重载操作符,格式如下:类型T operator 操作符 (),如比重载+,如下所示
template<typename T> class A
{
public:
     const T operator + (const T& rhs)
     {
     return this->m_ + rhs;
     }
private:
     T m_;
};

又比如STL中的函数对象,重载(),如下所示
template<typename T> struct A
{
   T operator()(const T& lhs, const T& rhs){ return lhs-rhs;}
};


2 operator casting
C++可能通过operator 重载隐式转换,格式如下: operator 类型T (),如下所示
class A
{
public:
   operator   B* () { return this->b_;}
   operator const   B* () {return this->b_;}
   operator   B& () {return *this->b_;}
private:
   B* b_;
};

A a;
当if(a),编译时,其中它转换成if(a.operator B*()),其实也就是判断 if(a.b_)

C++ operator两种用法【转】相关推荐

  1. operator的两种用法

    C++ operator两种用法 C++中的operator,有两种用法,一种是operator overloading(操作符重载),一种是operator casting(操作隐式转换).下面分别 ...

  2. c++ operator操作符的两种用法:重载和隐式类型转换,string转其他基本数据类型的简洁实现string_cast...

    C++中的operator主要有两个作用,一是操作符的重载,一是自定义对象类型的隐式转换.对于操作符的重载,许多人都不陌生,但是估计不少人都不太熟悉operator的第二种用法,即自定义对象类型的隐式 ...

  3. html如何让a标签提交表单提交,html post请求之a标签的两种用法解析

    这篇文章主要介绍了html post请求之a标签的两种用法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧 html post请求之a标签的两种用法 ...

  4. html post举例,html post请求之a标签的两种用法举例

    html post请求之a标签的两种用法举例 1.使用ajax来发起POST请求 HTML代码如下:发起POST请求a> JQuery代码如下:$(".a_post").on ...

  5. java sort 第二个参数_详解java Collections.sort的两种用法

    Collections是一个工具类,sort是其中的静态方法,是用来对List类型进行排序的,它有两种参数形式: public static > void sort(List list) { l ...

  6. include virtual引入html文件,ASP文件引用include file和include virtual两种用法

    在 ASP 编程中,我们经常遇到需要重复使用的模块代码,通常我们将这些模块代码保存为一个单独的文件,需要使用此模块代码时,在程序中通过 #include 指令引用此文件,这样使得工作效率和程序可读性大 ...

  7. python匿名函数Lambda的两种用法

    python匿名函数Lambda的两种用法 第一种方式:作为函数对象单独使用 第二种方式:放在另一函数里使用 一般来说匿名函数Lambda的使用就是为了避免单独def一个函数,而且不用给函数命名,但是 ...

  8. hover在两种情况下的两种用法

    :hover在鼠标移到链接上时添加的特殊样式. 提示: :hover 选择器器可用于所有元素,不仅是链接. 提示: :link 选择器设置了未访问过的页面链接样式, :visited 选择器设置访问过 ...

  9. git rebase的两种用法(最全)

    rebase的两种用法 用法一: 合并当前分支的多个commit记录 1. 找到想要合并的commit, 使用rebase -i 2. 进入Interact交互界面 3.使用s命令 合并到上一个com ...

最新文章

  1. 进程内COM与进程外COM
  2. HTML-参考手册: HTML 颜色名
  3. 《互联网+流通——F2R助力传统产业创新与转型》一一第1章 “互联网+”的新时代...
  4. 若依前后端部署之后验证码不显示
  5. 开源 Python网络爬虫框架 Scrapy
  6. 从前端智能化看“低代码/无代码”
  7. 自带容器_什么是衬胶容器罐以及质量标准?
  8. 图像处理-自适应的二值化图像
  9. 远程桌面/远程登陆中强行登陆(他人退出)与切换回话(登陆后切换到上次别的登陆)3389...
  10. java 水仙花数问题(java50道经典编程题)
  11. Github上优秀的开源项目
  12. VBA代码片之计算加权平均分
  13. VulnHub渗透测试实战靶场 - SICKOS: 1.1
  14. 微信小说小程序源码-自带采集带安装教程
  15. 深入理解JVM(程序编译与代码优化篇)
  16. Spring AOP实现原理,从代理说起
  17. 《软件测试方法和技术》-读书笔记(三)
  18. 浅谈《数学之美》①——自然语言处理
  19. Vue导出json数据到Excel电子表格
  20. doc和docx的区别

热门文章

  1. 云服务器 ECS快速入门:远程连接 ECS 实例
  2. 转: mysql create view 创建视图
  3. javascript跨域解决方案
  4. Windows Phone开发(41):漫谈关键帧动画之下篇
  5. Yii学习笔记:利用setFlash和runController打造个性化的提示信息页面
  6. IIS与COM组件权限的问题
  7. 什么是锚文本以及锚文本连接
  8. Oracle创建序列,删除序列,得到序列的例子
  9. Kong APIGW — Plugins — Traffic Control
  10. ETSI GS MEC 016,Device application interface