上一篇日志中讲述了如何通过类的非静态函数成员,进行运算符重载:

机器学习入坑者:C++日志(三十九)教你如何以类的非静态成员函数形式重载运算符​zhuanlan.zhihu.com

在C++中,同样可以通过非成员函数方式进行运算符的重载,此时重载函数需要所有操作对象的作为其参数。语法如下:

返回类型 operator运算符(形参表)

(1)双目运算符

对于下述由双目运算符构成的表达式:

ob1 双目运算符 ob2

重载函数的形参由ob1和ob类型组成,此表达式等价于“重载函数名(ob1, ob2)”。例子如下:

Duck operator-(Duck duck1, Duck duck2) {// 以非成员函数形式,重载双目运算符printf("Duck fighting! n");// 返回为Duck类型return Duck();
}

(2)单目前置运算符

对于下述由单目前置运算符组成的表达式:

单目运算符 ob;

重载函数的形参为ob,此表达式等于“重载函数名(ob)”。例子如下:

Duck operator++(Duck duck1) {// 以非成员函数形式,重载前置单目运算符printf("Duck fighting! n");return Duck();
}

(3)后置单目运算符

对于后置的自加和自减运算符,需要和前置的自加和自减分开。以非成员函数的形式重载后置单目运算符时,表达式如下:

ob 单目运算符;

此时,重载函数需有两个参数,一个是ob类型,另一个是int类型。其中int类型仅仅用于区分,并不需要使用。例子如下:

Duck operator++(Duck duck1, int) {printf("Duck fighting! n");return Duck();
}

中双目运算符_C++日志(四十)教你如何以非成员函数的形式重载运算符相关推荐

  1. 区块链中的数学(四十二)---基于RSA的VRF(随机可验证函数)

    文章来源区块链技术公众号"blocksight",原文欢迎关注! 写在前面 上一节说了VRF(随机可验证函数)概述,由于VRF是与公钥密码学相结合的,自然少不了最常见的公钥密码学体 ...

  2. 四十六、Fluent壁面函数的选取依据

    1. Fluent壁面函数 前面介绍了壁面函数的由来及相关的理论,这里我们介绍Fluent中壁面函数的选取依据.牢记:使用壁面函数的前提是y+>15 Fluent在两种湍流模型中需要选择壁面函数 ...

  3. 【Scikit-Learn 中文文档】四十:数据集加载工具 - 用户指南 | ApacheCN

    中文文档: http://sklearn.apachecn.org/cn/stable/datasets/index.html 英文文档: http://sklearn.apachecn.org/en ...

  4. 【叶子函数分享四十二】得到汉字笔画函数

    --=============================================== --功能:汉字笔画函数 --说明:以单个汉字汉字为参数返回每一个汉字的笔画数 --作者: J9988 ...

  5. 事物日志恢复 mysql_浅谈SQL Server中的事务日志(五)----日志在高可用和灾难恢复中的作用...

    本篇文章是系列文章中的第五篇,是对前一个日志系列的补充篇.如果您对日志的基本概念还没有一个比较系统的了解,可以参看本系列之前的文章: 浅谈SQL Server中的事务日志(一)----事务日志的物理和 ...

  6. vs2003 局部友元访问私有不可访问_C++ 类:重载运算符与友元

    18.类中重载运算符与友元 上次节中学习了如何在类中重新定义赋值(=)运算符,实际上在一个自定义类中除了赋值(=)运算符外,类的对象是不可以直接使用运算符的,比如你在main函数中写这样的代码会报错: ...

  7. maya批量命名插件_教你玩转MAYA的四十二精华造诣(第一期)

    最近在整理文档时发现我收藏了一篇关于MAYA应用技巧的文章,突然有兴趣看了看,结果发现老版本MAYA中的某些内容很多已经无法应用于新版本.我又上网查了一下,结果发现网上好多帖子和我收藏的这篇内容基本一 ...

  8. 四十二、深入Java中的文件读取操作

    @Author:Runsen @Date:2020/6/8 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严重,专业排名 ...

  9. 四十、Java中字节流和字符流介绍和区别

    @Author:Runsen @Date:2020/6/6 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严重,专业排名 ...

最新文章

  1. 《社交网站界面设计(原书第2版)》——1.17 模式还是套话
  2. SAP QM初阶之明明存在检验计划但是生成的检验批取不到?
  3. 戴尔官网全网抄底价! 企业级高性能机Vostro仅¥1,999!更有额外福利等你来领!...
  4. [深入浅出Cocoa]之消息(二)-详解动态方法决议(Dynamic Method Resolution)
  5. python变量和常量_5、python的变量和常量
  6. python重新启动整个脚本_每次对脚本进行更改时,都需要在终端中重新启动python...
  7. 如何在Java中将毫秒转换为“ X分钟,x秒”?
  8. tomcat部署安全证书文件(阿里云SSL证书)
  9. JavaScript:剖析ES6(1)--let和const
  10. DNN与微软同声传译系统背后的故事
  11. 付费版百度指数 就是这么坑爹
  12. Kafka SASL配置 Demo测试
  13. [电脑桌面右击新建没有excel、ppt、word]
  14. 单片机控制步进电机-VB上位机生成S曲线
  15. 【每日一练】小米搜索框
  16. slmgr.vbs -dlv 和slmgr.vbs -xpr查询win10激活的错误问题
  17. 消防工程师与消防员有什么区别?
  18. docker实现MySQL主主互备(主主双机热备)
  19. Codevs 打鼹鼠
  20. 【新】华为OD机试 - 水仙花数 2(Python)| 刷完获取OD招聘渠道

热门文章

  1. 黄聪:原生js的音频播放器,兼容pc端和移动端(原创)
  2. 路由网关--spring cloud zuul
  3. 练习 MongoDB 操作 —— 分片篇(五)
  4. 【微信公众号开发】获取并保存access_token、jsapi_ticket票据(可用于微信分享、语音识别等等)...
  5. 理解 angular2 基础概念和结构 ----angular2系列(二)
  6. GA(遗传算法)的Matlab程序原理(from:六分之一工作室)
  7. SQL text字段的替换处理(无法批量更新,写法记录)
  8. 【心情】期待 Mr. Jack In New York!
  9. 代码段、数据段、bss段
  10. sftp连不上服务器 vscode_VSCODE 【SFTP】 Code:3221225477 / 扩展宿主意外终止 解决方法...