重载运算符---(超详细的保姆级教程)

一. 简单介绍什么是重载运算符

1.重载运算符的定义

运算符重载,就是对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。-- 百度
将系统预定义的运算符,用于用户自定义的数据类型,这就是运算符重载。运算符重载的实质就是函数重载 – b站

通俗一点来说,就是编译软件本身的运算符不符合我们想要的运算符定义,我们需要重新定义运算符来达到我们的目的。 比如我们定义一个名为xlx77的结构体,当我们想直接输出一个结构体的时候是不被允许的,我们就可以重新定义 << ,来达到我们的目的

2. 重载运算符的基本格式

重载运算符的一般格式为:
返回类型 operator@(参数表)
{
重载函数体;
}

3. 可以重载的运算符和不能重载的运算符

请添加图片描述
请添加图片描述

4. 重载运算符的规则

1. 不允许定义新的运算符
2. 不能改变该运算符操作数(对象)的个数
3. 不能改变该运算符的优先级别和结合性
4. 应该符合实际需要,重载的功能应该与运算符原有的功能相似,避免没有目的的使用重载运算符

5.重载运算符函数的分类

  1. 成员运算符函数
  2. 友元运算符函数
    运算符重载为友元函数,在相应的类中声明为该类的友元函数,声明的一般形式为:
    friend 返回类型 operator@(参数表){函数体}

二. 几种常见运算符的重载

总代码:

我定义了一个名为xlx77的结构体,内有两个double元素a和b,重载了 + ,前置++,后置++, = , << , >> 等运算符。

#include<iostream>
using namespace std ;
class xlx77
{
   
public:
    double a , b ;
    void show()
    {
   
        cout << a << b << endl;
    }
    xlx77 operator+(xlx77 & c2){
   
        xlx77 temp;
        temp.a = this ->a + c2.a;
        temp.b = this ->b + c2.b;
        return temp;
    }
    xlx77 operator++(){
    //前置
        this ->a ++;
        this ->b ++;
        return *this;
    }
    xlx77 operator++(int){
    //后置
        xlx77 temp = *this;
        this ->a ++;
        this ->b ++;
        return temp;
    }
    xlx77 operator=(const xlx77 & c){
   
        this ->a = c.a;
        this ->b = c.b
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三粒小金子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值