文档章节

C++运算符重载Sample

李三乎
 李三乎
发布于 2012/12/02 03:31
字数 189
阅读 223
收藏 0

行业解决方案、产品招募中!想赚钱就来传!>>>

我认为C++最令人惊喜的特点之一就是运算符重载

运算符重载的基础是C++解析运算符时会调用函数

比如 MyObj a, b; a+b; 则为 a.operator+(b); 或者调用友元函数 operator+(a, b); 要注意重载后的算符不要有二义性

<p> 这里举一些简单的示例

对于<<的重载,使用友元,通用形式

</p> <p> 声明(在类public里面): </p><p> <!-- lang: cpp --> <code> friend ostream& operator&lt;&lt;(ostream& os, MyObj& my); <code> </p> <p> 实现(Sample): </p><p> <!-- lang: cpp --> <code> return os&lt;&lt;my.a&lt;&lt;my.b&lt;&lt;endl; </code>

</p>

<p> 对于前缀++(--)和后缀--(++) </p> <p> 声明: </p><p>

<!-- lang: cpp -->
<code>
MyObj operator++();  //前缀式
</code>

</p><p> <!-- lang: cpp --> <code> friend MyObj operator++(MyObj); //前缀式 </code>

</p> <p> <!-- lang: cpp --> <code> friend MyObj operator++(MyObj, int); //后缀式 </code>

</p> 注:后缀式的第二个参数没有什么用

李三乎
粉丝 2
博文 13
码字总数 7393
作品 0
美国
程序员
私信 提问
加载中
请先登录后再评论。
C++模板库--C++ B-tree

这是一个google开源的C++模板库,实现了基于B-tree数据结构的有序内存容器。类似于STL的map、set、multimap和multiset模板,C++ B-tree也提供了btreemap、btreeset、btreemultimap和btreemu...

匿名
2013/02/05
3.3K
1
C/C++ 代码文档生成器--cldoc

cldoc 是一个使用 clang 实现的 C/C++ 代码文档生成器。 特点: 使用 clang 可靠解析大多数复杂的 C++ 项目 零配置 使用 markdown 做为文档格式 生成描述 API 的 XML 文档 使用简单格式用于文...

匿名
2013/02/14
1.4K
0
tiny php template--TPT

关于TPT TPT是php实现的用于模板解析小工具,全部实现仅仅60行代码。 配置 DIRCOMPILED和DIRTEMPLATE,分别表示模版编译目录和模版文件目录: define('DIRCOMPILED','/compileddiy');define(......

红猪-侠
2013/03/03
1K
1
C++ 软件生态系统--Ryppl

Ryppl 是由 Boost 项目的一些成员创建的项目,因为意识到 Boost 越来越耦合、笨拙以及依赖于定制的架构。因此他们决定开始 Ryppl 项目。 Ryppl 项目的目的就是创建一个可移植的模块化的 C++ ...

匿名
2013/03/06
1.2K
0
C++的JSON解析类--JSONVALUE

Jsonvalue 是 C++ 的 JSON 类,用来解析 JSON 到 C++ 对象,也可将对象转成 JSON 字符串。支持 ANSI 和 Unicode。特点: 严格和松散模式 不同数据类型 简单 API 仅依赖 STL 示例代码: JSON...

匿名
2013/03/10
2.9K
1

没有更多内容

加载失败,请刷新页面

加载更多

C#中的9个“黑魔法”与“骚操作”

点击蓝字“ 大白技术控 ”关注我哟 加个“星标★”,每日良时,好文必达! 我们知道C#是非常先进的语言,因为是它很有远见的"语法糖"。这些"语法糖"有时过于好用,导致有人觉得它是C#编译器写...

大白技术控
04/06
0
0
npm

package.json(nmp install -y) { "name": "timer", //项目名 "version": "1.0.0", //版本号 "description": "A cool timer", //描述 "main": "timer.js", //项目主入口......

长臂猿猴
15分钟前
11
0
vpp系列6-DNAT

前置 上一篇讲到SNAT,这篇试验DNAT DNAT 首先在host机器上安装nginx apt-get install nginx 确认服务启动 DNAT配置 # 设置DNat,将ethvpp-pub口的tcp 80端口号映射到本地10.10.5.2的80端口号...

messud4312
18分钟前
16
0
Go语言对接USDT-TRC20【TronTool】

TronTool.Go开发包适用于为Go应用快速增加对Tron/USDT-TRC20数字资产的支持能力,即支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。官方下载地址:...

区块链教程
20分钟前
19
0
如何避免JSP文件中的Java代码? - How to avoid Java code in JSP files?

问题: I'm new to Java EE and I know that something like the following three lines 我是Java EE的新手,我知道类似以下三行 <%= x+1 %><%= request.getParameter("name") %><%! count......

fyin1314
21分钟前
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部