多态性——运算符重载(二)
来源:互联网 发布:kindle有必要买吗 知乎 编辑:程序博客网 时间:2024/06/14 09:52
- 友元运算符重载函数
由于友元运算符重载不是该类的成员函数,故类外定义时不需要缀上类名。
(1)在类内部定义
friend 函数类型 operator 运算符(形参表)
{
函数体;
}
(2)在类中定义,在类外声明
class X{
friend 函数类型 operator 运算符(形参表);
}
函数类型 operator 运算符(形参表)
{
函数体;
}
2.友元函数
3.单目运算符重载:用友元函数重载单目运算符时,需要一个显式的操作数。
4.在传数据时,用&时形参是对象的引用,是通过地址的方式传递参数的,对形参的改变会改变实参的改变;而直接传递参数时,形参是对象,是通过传值的方式传递参数的,在函数体中任何更改都不会传递到函数体外。
5.成员运算符重载函数:成员运算符重载函数形参表中仅有一个参数,它作为运算符的右操作数,另一个操作数是隐含的,是该类的对象,用this指针传递。
6.成员运算符重载单目运算符重载:返回值是用this 指针返回的。
7.比较
(1)对双目运算符而言,成员运算符重载函数的参数表中含有一个参数,而友元函数参数表中必须有两个参数;对单目运算符而言,成员运算符重载函数参数表中没有参数,而友元运算符重载函数参数表中含有一个参数。
(2)双目运算符一般都可以重载为友元运算符重载函数或成员运算符重载函数,根据出现的左右可能会导致错误(成员运算符重载函数),所以最好使用友元函数。(com1=100+com,com是一个类,如果是成员函数重载则为com1=100.operator(com),故会出错)。
一般而言,双目运算符重载为友元函数比成员函数更加有利于使用。对于单目运算符则选择成员运算符更加方便。
0 0
- 多态性——运算符重载(二)
- 多态性之运算符重载(二)
- 多态性——运算符重载(一)
- 多态性——运算符重载(三)
- 多态性-运算符重载
- C++ 多态性(2) 运算符重载
- 知识点——多态性、运算符重载、双目运算符重载实现、单目运算符重载实现
- c++多态性 运算符重载
- C++ 多态性(3) 运算符重载2
- 【C++】三大特征之多态性(运算符重载)
- C++——运算符重载(二)
- C/C++ 初学简单笔记 —4.1— 多态性 运算符重载
- C++运算符重载(二)——使用方法
- C++运算符重载(二)——使用方法
- C++运算符重载(二)——使用方法
- (一二二)运算符重载——第十一章
- 运算符重载(二)
- 运算符重载(二)
- 8-PS学习总结
- php 判断是移动端还是pc端访问web页面
- go 原生http web 服务跨域restful api 写法
- 《Linux内核设计与实现》读书笔记(十三)- 虚拟文件系统
- AssetPostprocessor 使用
- 多态性——运算符重载(二)
- HTTP 协议请求返回值解释
- pngquant图片压缩工具
- java 枚举——java中枚举的运用和使用场景
- Android Studio运行出现Unknown run configuration type AndroidRunConfigurationType解决方案
- 浅谈xss
- 数据库存储引擎MyISAM与InnoDB的区别
- 小程序-微信
- 论文写作:完美诞自计划