본문 바로가기

교육 노트/C++ 심화강의

[C++ 때려잡기] C++ 심화강의 12 오버라이딩 (overriding)

2018/08/27 - [교육 노트/C++ 심화강의] - [C++ 때려잡기] C++ 심화강의 1 객체 지향 프로그래밍과 클래스

2018/08/27 - [교육 노트/C++ 심화강의] - [C++ 때려잡기] C++ 심화강의 2 접근 한정자

2018/08/27 - [교육 노트/C++ 심화강의] - [C++ 때려잡기] C++ 심화강의 3 생성자와 소멸자

2018/08/29 - [교육 노트/C++ 심화강의] - [C++ 때려잡기] C++ 심화강의 4 복사 생성자와 깊은 복사

2018/08/29 - [교육 노트/C++ 심화강의] - [C++ 때려잡기] C++ 심화강의 5 this 포인터

2018/08/29 - [교육 노트/C++ 심화강의] - [C++ 때려잡기] C++ 심화강의 6 Class 선언과 정의

2018/08/29 - [교육 노트/C++ 심화강의] - [C++ 때려잡기] C++ 심화강의 7 inline 함수

2018/08/31 - [교육 노트/C++ 심화강의] - [C++ 때려잡기] C++ 심화강의 8 Friend function, friend class

2018/08/31 - [교육 노트/C++ 심화강의] - [C++ 때려잡기] C++ 심화강의 9 연산자 오버로딩, chaining

2018/08/31 - [교육 노트/C++ 심화강의] - [C++ 때려잡기] C++ 심화강의 10 클래스의 핵심 상속

2018/08/31 - [교육 노트/C++ 심화강의] - [C++ 때려잡기] C++ 심화강의 11 다중 상속과 가상 상속

전에 강의에서 웨폰 클래스를 만들고 각종 무기들이 상속받아


모든 무기가 attack 함수를 사용할수 있었다.


그런데 내 게임에서 나이프는 SSS급 레어 무기라 공격할때 다른 무기들과 다르게 동작하고 싶다.


그래서 다르게 동작하게 Attack를 재정의 하였다




이렇게 함수를 자식클래스에서 재정의 하는것이 오버라이딩이다

오버로딩이 아니다 오버라이딩이다.


오버라이딩은 같은 시그니처를 가진 함수를 자식에서 재정의하는것이고

오버로딩은 이름이 같은 다른 시그니처를 가진 함수를 정의하는것이다

만약 자식에서  파라미터를 받는 attack함수를 만들었다면 그건 오버라이딩이 아니라 그냥 자식이 원래 가지고있는 attack와 다른 시그니처를 가진 attack를 오버로딩 한것이고 파라미터를 가지지않는 attack를 함수를 정의했다면 그게 오버라이딩이다.



728x90