C++:重载操作符 & 赋值操作符重载需要注意的问题

匿名 (未验证) 提交于 2019-12-03 00:38:01

一、操作符重载
1.什么是操作符重载
就是把一些操作符通过关键字operator,组装成一个函数,关键字operator后面接需要重载的操作符符号
2.为什么需要重载操作符?
(1)简单、方便,比起封装一个函数,使用operator比较形象直观
(2)可以提高代码的可读性
(3)为了处理自定义类型和内置类型之间的运算
3.操作符重载的格式

函数的返回类型 operator 操作符(参数列表)

例如:int operator=(int a,int b); 

ps:操作符重载也是一个函数,具有返回值和参数,此函数的形参个数与操作符的操作数目相关,例如 ‘+’ 是双目操作符,也就是说 ’+‘ 是有两个参数的,那重载’+‘时,就需要两个参数。
4.不能被重载的操作符

1).        //成员选择符2).*       //成员对象选择符3)::       //域解析操作符4)?:       //条件操作符5sizeof   

ps:除了赋值号(=)外,基类中被重载的操作符都将被派生类继承
5.重载操作符注意事项
(1)不能通过连接其他符号来创建新的操作符,例如operator@
(2)重载操作符时必须有一个类类型或者枚举类型的操作数
(3)用于内置类型的操作符被重载时,其含义不能被改变,例如操作符加号(+)就是用来求和的,重载后,不能改变此操作符的意义
(4)作为类成员的重载函数,其形参的数目看起来比操作数数目少一个,这是因为成员函数的操作符有一个默认的形参this,限定为第一个参数
(5)一般将算术操作符定义为非成员函数,赋值运算符定义为成员函数
(6)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!