관리 메뉴

Kim's Programming

Overloading 과 Overriding의 차이 본문

Programming/팁

Overloading 과 Overriding의 차이

Programmer. 2016. 3. 8. 12:26
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include<iostream>
class Parent
{
public:
    void print(int i)
    {
        std::cout << "this is first print()" << std::endl;
    }
    void print(int i, char h)
    {
        std::cout << "this is second print()" << std::endl;
    }
};
 
class Child :public Parent
{
public:
    void print(int i)
    {
        std::cout << "this is third print() in Child Class" << std::endl;
    }
};
 
void main()
{
    Parent P;
    Child C;
    P.print(3'f');//overloading
    C.print(3);//overriding
}
cs


오버로딩은 간단히 이야기 했을때 같은 이름을 가진 함수를 중복적으로 정의 하는 것을 의미 하며 오버라이딩은 기존에 있는 함수들을 무시하고 새로 재정의 하는 것을 의미합니다.

Parent 클래스에서는 함수의 명이 둘다 print임에도 불구하고 변수를 통해서 구분하여 알맞은 함수를 선택하여 줍는 이 것을 Overloading 이라고 합니다. 하지만 Child 클래스에서는 Parent 클래스의 내용들을 상속 받았기 떄문에 Parent 클래스에 있는 함수들을 넘겨받아야 정상인데 Parent 클래스가 가지고 있던 print()함수들은 무시해 버리고 Child 클래스 내부에 있는 함수만을 사용하게 됩니다. 이 것은 Overriding 이라고 합니다.


'Programming > ' 카테고리의 다른 글

쓰레드 생성 클래스화 하기  (0) 2016.03.06
DirectX SDK설치후 예제가 돌아가지 않는다.  (1) 2016.03.06