C++加号运算符重载

本文详细介绍了如何在C++中通过成员函数和全局函数的方式重载加法运算符+,并展示了Person类中使用这些重载操作符的例子。
摘要由CSDN通过智能技术生成

#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;
class Person
{
public:
    //成员函数重载运算符
    //Person operator + (Person &p)
    //{
    //    Person temp;
    //    temp.a = this->a + p.a;
    //    temp.b = this->b + p.b;
    //    return temp;
    //}
    Person(int _a, int _b);
    Person(){}
    int a;
    int b;
};
Person::Person(int _a, int _b)
{
    a = _a;
    b = _b;
}
//全局函数重载运算符
Person operator + (Person &p1, Person &p2)
{
    Person temp;
    temp.a = p1.a + p2.a;
    temp.b = p1.b + p2.b;
    return temp;
}

//全局函数重载运算符函数重载
Person operator + (Person& p1, int num)
{
    Person temp;
    temp.a = p1.a + num;
    temp.b = p1.b + num;
    return temp;
}
void test01()
{
    Person p1(10, 10);
    Person p2(10, 10);
    Person p3 = p1 + p2;
    //成员函数重载运算符本质
    //Person p3 = p1.operator+(p2);
    //全局函数重载运算符本质
    //Person p3 = operator+(p1, p2);
    cout << "p3.a = " << p3.a << endl;
    cout << "p3.b = " << p3.b << endl;

    //运算符重载也可以发生函数重载
    Person p4 = p1 + 10;
    cout << "p4.a = " << p4.a << endl;
    cout << "p4.b = " << p4.b << endl;


}

int main()
{
    test01();
    return 0;
}

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值