오버라이딩 / 오버로딩 / 연산자 오버로딩

윤이령·2026년 4월 21일

오버라이딩

  • 자식 클래스에서 부모 클래스의멤버 함수를 재정의
  • 다형성 구현에 사용
  • 네임스페이스로 원본 호출 가능

오버로딩

  • 같은 이름, 다른 매개변수 구성으로 함수를 중복 정의
  • 같은 기능의 다양한 옵션 제공
  • 연산자 오버로딩도 같은 개념 : operator + 처럼 '+' 기호로 호출

연산자 오버로딩

  • 기본 연산자(+,-,*,== 같은 것)를 내가 만든 클래스 객체에도 사용할 수 있게 “재정의”하는 기능
  • +연산자로 operator+ 함수 불러옴
class Point {
public:
    int x, y;

    Point operator+(const Point& other) {
        Point result;
        result.x = x + other.x;
        result.y = y + other.y;
        return result;
    }
};

...

Point p1{1, 2};
Point p2{3, 4};

Point p3 = p1 + p2; //Point p3 = p1.operator+(p2);

0개의 댓글