C++ 运算符重载一(二元运算符重载)
- 作者: 五速梦信息网
- 时间: 2026年04月04日 13:48
//二元运算符重载
#include<iostream>
using namespace std;
class Point
{
public:
Point(int x,int y){<br/>
this->x = x;<br/>
this->y = y;<br/>
}<br/>
//为什么要使用友元函数呢<br/>
friend Point operator+(Point &p1, Point &p2);
//类成员函数实现二元运算符-
Point operator-(Point &pin){<br/>
//二元运算符最好不要改变原来的变量<br/>
Point temp = *this;<br/>
temp.x = this->x - pin.x;<br/>
temp.y = this->y - pin.y;<br/>
return temp;<br/>
}<br/>
void PrintfA(){<br/>
cout << "x=" << this->x << endl;<br/>
cout << "y=" << this->y << endl;
}
private:
int x;<br/>
int y;<br/>
};
//友元函数
//因为函数中使用类的私有成员属性
Point operator+(Point &p1, Point &p2){
Point pres(p1.x+p2.x,p1.y+p2.y);<br/>
return pres;<br/>
}
void ProtectA(){
//重载二元运算符 +<br/>
Point p1(, ), p2(, );<br/>
Point p3 = p1 + p2;<br/>
//全局函数(一般是友元函数),类成员函数实现运算符重载步骤<br/>
//步骤1:要承认操作符重载是一个函数,写出函数名称<br/>
//operator+<br/>
//步骤2:根据操作数,写出函数参数列表<br/>
//operator+(p1, p2);<br/>
//步骤3:根据业务,完成函数返回值,及实现函数<br/>
//p3=operator + (p1, p2);<br/>
p3.PrintfA();
//用类成员们函数实现
//由全局函数变成类成员函数<br/>
Point p4 = p1 - p2;<br/>
//步骤1:要承认操作符重载是一个函数,写出函数名称<br/>
//operator-()<br/>
//步骤2:根据操作数,写出函数参数列表,<br/>
///在类中,对象本身是this,所有可以少传递一个变量<br/>
//p1.operator-(p2);<br/>
//步骤3:根据业务,完成函数返回值,及实现函数<br/>
p4.PrintfA();
}
void main(){
ProtectA();<br/>
system("pause");<br/>
}
- 上一篇: c++11 实现枚举值到枚举名的转换
- 下一篇: c++ 文件读写(转)






