아래의 vector add로 cpp에서의 overloading 예제를 보이겠다.
#include <iostream>
using namespace std;
class Point {
private:
int x, y;
public:
Point(int _x=0, int _y=0): x(_x), y(_y) {}
void ShowPosition();
Point operator+(const Point& p);
};
void Point::ShowPosition() {
cout << "x= " << x << " : y= " << y << endl;
}
Point Point::operator+(const Point& p) {
Point temp(x+p.x, y+p.y);
return temp;
}
int main(void) {
Point p0 ;
Point p1(-6, 12);
Point p2(32, 7);
Point p3 = p1 + p2;
Point p4 = p1 + p0 ;
p3.ShowPosition();
p4.ShowPosition();
return 0;
}
operator+ 함수가 없다면 vector 끼리의 + 연산이 불가능하다. 그러나 operator+ 함수를 통해서 vector끼리의 + 연산이 가능하게 되었음. 이것을 overloading 이라고 한다.