C++ 学习之加号运算符重载
作者:互联网
运算符重载概念:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型
1、成员函数实现+运算符重载
2、全局函数实现+运算符重载
3、运算符重载也可以发生函数重载
#include<iostream>
#include<string>
using namespace std;
//1、成员函数实现+运算符重载
//2、全局函数实现+运算符重载
class person
{
public:
person()
{
}
person(int a,int b)
{
this->m_A = a;
this->m_B = b;
}
//成员函数实现+运算符重载
/*person operator+(person &p)
{
person temp;
temp.m_A = this->m_A + p.m_A;
temp.m_B = this->m_B + p.m_B;
return temp;
}*/
public:
int m_A;
int m_B;
};
//通过全局函数实现运算符+重载
person operator+(person &p1,person &p2)
{
person temp;
temp.m_A = p1.m_A + p2.m_A;
temp.m_B = p1.m_B + p2.m_B;
return temp;
}
//函数重载版本
person operator+(person &p1, int num)
{
person temp;
temp.m_A = p1.m_A + num;
temp.m_B = p1.m_B + num;
return temp;
}
void main()
{
person p1(15,10);
person p2(10,10);
//成员函数运算符重载的本质
// person p3 = p1.operator+(p2);
//全局函数运算符重载的本质
// person p3 = operator+(p1,p2);
//最终都可以简化成这种
person p3 = p1 + p2;
cout << "p3的m_A:" << p3.m_A << endl;
cout << "p3的m_B:" << p3.m_B << endl;
//运算符重载也可以发生函数重载
person p4 = p1 + 100;
cout << "p4的m_A:" << p4.m_A << endl;
cout << "p4的m_B:" << p4.m_B << endl;
}
注意:对于内置的数据类型的表达式的的运算符是不可能改变的
比如想把1+1=2改了是不行的,只能自己编写没有的数据类型相加
标签:p2,p1,temp,C++,运算符,person,加号,重载 来源: https://blog.csdn.net/weixin_44618297/article/details/120403983