目录
什么是运算符重载
运算符重载的意义
运算符重载的语法格式
简单例子
“+”运算符的重载
代码分析
运算符重载的两种方式
1,重载为类的成员函数
(1),双目运算符
(2),单目运算符
2,重载为类的友元函数
(1)重载格式
(2)调用格式
两种重载方式的选择
运算符重载的规则
常用运算符的重载
1,输入输出运算符的重载
说明
案例
注意:
2,关系运算符的重载
案例
重载关系运算符的准则
3,赋值运算符的重载
类型转换函数
重载类型转换运算符的原因
案例:定义一个A类,将A类型的对象转换为char类型
转换构造函数
什么是转换构造函数
转换构造函数的作用
转换构造函数的用法
案例
什么是运算符重载运算符重载(Operator overload)是对已有的运算符赋予多重含义,使同一个运算符作 用于不同类型的数据时做出不同的行为。
例如:学生类包括姓名,年龄,班级,成绩等,定义了两个学生变量,想比较它们的大 小,如何比较大小呢?
为“学生”类重载“>”符号,然后在这个方法里实现比较的意义:按年龄、按成绩或 按姓名首字母比较等。
运算符重载的意义运算符重载的本质是函数重载,是实现多态的重要手段,为用户提供了一个直观的接口。 调用运算符操作自定义数据类型其实就是调用运算符函数。运算符重载使用同样的运算 符,可以操作不同的数据,增强了C++的可扩充性,使代码更加直观、易读,便于对对 象进行各种运算操作。
运算符重载的语法格式重载的运算符是具有特殊名字的函数:它们的名字由关键字operator,后跟要重载的运 算符。
返回类型 operator 运算符(参数列表)
{
函数体;
}
说明:运算符是要重载的运算符名(如+、-、*、/等),但必须是C++允许重载的运算 符
简单例子 “+”运算符的重载#include
using namespace std;
class A
{
private:
int x, y;
public:
A(int x1 = 0, int y1 = 0)
{
x = x1;
y = y1;
}
A operator+(const A& a)const//重载-运算符的实现
{
return A(x + a.x, y + a.y);//调用A类构造函数创建一个临时匿名对象作为函数返 回
}
void show()
{
cout
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?