首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
其他好文
> 详细
运算符重载
时间:
2015-07-10 18:23:58
阅读:
111
评论:
0
收藏:
0
[点我收藏+]
标签:
一.一般形式
返回类型 operator 操作符 (参数列表)
二.成员函数or友元函数?
大部分运算符重载函数既可以是成员函数,也可以使友元函数。使用友元函数的形式如下:
friend 返回类型 operator 操作符 (参数列表)
eg:
成员函数:Int operator + (const Int &);
友元函数:friend Int operator + (const Int &, const Int &);
注意
:跟成员函数不同的是参数列表。友元函数的参数列表中比成员函数多一个参数,因为成员函数可以通过this指针隐式的访问对象的参数,而友元必须指定。
运算符重载函数定义为成员函数或是友元函数的几点依据:
重载运算符(),【】,->或任意赋值运算符时,必须为成员函数
当运算符重载函数是一个成员函数时,最左边的操作数必须是类的一个对象(或引用),例如上例中+左边为Int。如果左边的操作数必须是一个不同类的对象或内部类型的对象,运算符函数必须是友元函数。(
解释:通过成员函数重载的运算符是由运算符左边的对象调用的,该对象通过this指针隐式传递,因此,最左边的操作数必须是一个对象。将运算符重载函数声明为友元函数时,因为没有隐含的this指针,所以必须显示指定所有参数。
)
对二元运算符,成员函数带一个参数,友元函数带两个参数。对一元运算符,成员函数不带参数,友元函数带一个阐述。
三.可重载or不可重载的运算符
不可被重载的运算符:
.*, ::, ?:, sizeof
四.其他
1.前置后置运算符如何区分?
前置:Integer& operator ++ () friend Integer& operator ++(Integer & a);
后置:Integer operator ++ (
int
) friend Integer operator ++ (Integer & a, int);
int只是一个伪值,用于区分前置后置运算符
运算符重载
标签:
原文地址:http://www.cnblogs.com/happygirl-zjj/p/4636155.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
分布式事务
2021-07-29
OpenStack云平台命令行登录账户
2021-07-29
getLastRowNum()与getLastCellNum()/getPhysicalNumberOfRows()与getPhysicalNumberOfCells()
2021-07-29
【K8s概念】CSI 卷克隆
2021-07-29
vue3.0使用ant-design-vue进行按需加载原来这么简单
2021-07-29
stack栈
2021-07-29
抽奖动画 - 大转盘抽奖
2021-07-29
PPT写作技巧
2021-07-29
003-核心技术-IO模型-NIO-基于NIO群聊示例
2021-07-29
Bootstrap组件2
2021-07-29
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!