ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Overloading과 Overriding의 차이
    C++ 2014. 1. 14. 09:21
    class Test {
      // Test::func is overloaded
      virtual void func(int x);
      virtual void func(double y);
    };
    
    class Child : public Test {
      // Child::func overrides Test::func
      virtual void func(int x); 
    };

    Overloading과 Overriding은 자주 사용을 하면서도 용어상으로는 늘 혼동이 되는 것이라 여기서 정리를 한다.


    1) Overloading

        같은 이름의 멤버함수이나 매개 변수, 가상 등으로 다른 멤버함수를 같은 멤버함수 이름으로 사용하는 것

        또 다른 형태의 오버로딩은 연산자 오버로딩이다.

        각 디폴트 연산자들을 자신의 목적에 맞게 다시 정의해서 사용하는 방식이다.


    2) Overiding은 

        상속에서 베이스 클래스에 있는 멤버함수를 자식이 다시 정의해서 사용하는 것.

        여기서 멤버함수는 완전히 동일한 형태이어야 한다.

        Overriding은 베이스 클래스를 추상 클래스로 인터페이스로 사용할 때 자식 클래스에서 구현하여 사용하는 것이 가장 일반적인 Overiding의 형태가 된다.

    'C++' 카테고리의 다른 글

    Template 사용  (0) 2014.01.16
    Friend의 사용시기  (0) 2014.01.14
    가상함수, 추상클래스의 권고 사항  (0) 2014.01.14
    const 사용  (0) 2014.01.14
    C++ Object 생성시 주의 사항1  (0) 2014.01.14
Designed by Tistory.