C++/General

오버로딩과 오버라이딩

엘키 2008. 1. 22. 09:01
오버로딩(Overloading)에는 연산자 오버로딩, 메소드 오버로딩이 있는데, 이 중 메소드 오버 로딩을 말해보겠다.

메소드 오버로딩이란, 같은 이름의 메소드지만 파라미터가 다르면 다른 함수로 처리하여, 중복 정의를 허용하겠다는 것이다.
class CTest
{
public:
        void Print()
        {
               printf("CParent\n");
        }
 
        void Print(char *str)
        {
               printf(str);

        }

        void Print(int no)
        {
               printf("%d\n", no);
        }
};



오버라이딩(Overriding)이란, 부모 클래스에 이미 존재하는 함수를 덮어 쓴단 의미다. 오버라이드 하게 되면 자식 클래스에서는 부모 클래스의 Print 함수의 존재를 잊어 버리고, 자식 클래스의 Print 함수만 인식하게 된다.
class CParent
{
public:
        void Print()
        {
               printf("CParent\n");
        }
};

 

class CChild : public CParent
{
public:
        void Print()
        {
               printf("CChild\n");
        }

};