c++运算符重载功能可以,将平常使用的运算符赋予新的功能,其关键字为 operator ,
格式为:
类型名 operator 运算符( 变量类型 变量,变量类型 变量)
示例1.在全局变量使用运算符重载
#include<iostream>
using namespace std;;
class person
{
// public:
// person operator+(person & p)
// {
// person temp;
// temp.m_a = this->m_a + p.m_a;
// temp.m_b = this->m_b + p.m_b;
// }
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;
}
int main()
{
person p1;
p1.m_a = 20;
p1.m_b = 10;
person p2;
p2.m_a = 10;
p2.m_b = 20;
person p3 = p1 + p2;
cout << p3.m_a << endl;
}
示例2 在类中使用运算符重载
#include<iostream>
using namespace std;;
class person
{
public:
person operator+(person & p)
{
person temp;
temp.m_a = this->m_a + p.m_a;
temp.m_b = this->m_b + p.m_b;
}
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;
// }
int main()
{
person p1;
p1.m_a = 20;
p1.m_b = 10;
person p2;
p2.m_a = 10;
p2.m_b = 20;
person p3 = p1 + p2;
cout << p3.m_a << endl;
}