Overloading vector add.(cpp)

kyungminLim·2024년 4월 18일
0

Overloading

  • 함수의 이름이 같고, 매개변수의 타입이나 개수가 다른 함수 (함수의 중복 정의)
  • overloading은 return type만 다른 것으로는 허용하지 않는다.

아래의 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 이라고 한다.

0개의 댓글