C++操作符重载实例(独立函数)
C++操作符重载实例,我们把坐标值CVector的加法进行重载,计算c3=c1+c2时,也就是计算x3=x1+x2,y3=y1+y2,今天我们以独立函数的方式重载操作符+(加号),以下是C++代码:
c1802.cpp源代码:
D:\YcjWork\CppTour>vim c1802.cpp
#include <iostream>
using namespace std;
/**
* 以独立函数的方式重载操作符+
*/
class CVector{
public:
int x, y;
CVector(){}
CVector(int a, int b):x(a),y(b){}
};
CVector operator+(CVector lhs,CVector rhs){
CVector temp;
temp.x = lhs.x + rhs.x;
temp.y = lhs.y + rhs.y;
return temp;
}
int main(){
CVector c1(7, 5);
CVector c2(3, 15);
CVector res = c1+c2; //调用重载的操作符+
//以函数的方式调用重载的操作符,OK
//CVector res = operator+(c1, c2);
cout << "res.x=" << res.x << endl;
cout << "res.y=" << res.y << endl;
return 0;
}
编译、运行:
D:\YcjWork\CppTour>gpp c1802
D:\YcjWork\CppTour>g++ c1802.cpp -o c1802.exe
D:\YcjWork\CppTour>c1802
res.x=10
res.y=20
D:\YcjWork\CppTour>