승쨩개발공부
[C++] 오버라이딩 본문
오버라이딩
상속 관계에서 부모 클래스의 함수를 자식 클래스에 재정의하는 문법.
-> 단, 반환 타입, 함수이름, 매개변수 정보가 모두 동일해야한다.
부모와 자식이 동일한 함수를 가지고 있고, 이를 호출할 경우 모호성이 발생해야 한다.
즉, 부모와 자식 둘 다 같은 이름의 함수를 가지고 있어야 된다.
단, 오버라이딩은 모호성이 발생하지 않는다.
오버라이딩 된 함수를 호출할 경우 실 객체 기준으로 판단하지 않고
객체 타입 기준으로 판단하여 함수를 호출한다.
-> 객체 타입 기준의 함수가 앞으로 나오고, 실 객체의 함수가 뒤로 숨는다.
CPlayer는 CObj를 상속 받고 있다.
-> CObj의 CPlayer 클래스 내부에는 Func()함수가 있다.
-> 당연히 모호성이 발생해야 하지만, 오버라이딩 문법이 적용되어 모호성이 발생하지 않는다.
오버라이딩 정리
부모와 자식이 동일한 함수를 가져도 모호성을 없애주는 문법.
호출 시에는 객체 타입 기준으로 호출할 함수를 판단한다.
'C++' 카테고리의 다른 글
[C++] 캐스팅 (static_cast, dynamic_cast, const_cast, reinterpret_cast) (0) | 2021.12.06 |
---|---|
[C++] 가상 함수(virtual), 가상 소멸자, 순수 가상 함수 (0) | 2021.12.03 |
[C++] 객체 포인터 (0) | 2021.12.03 |
[C++] 상속 (0) | 2021.12.03 |
[C++] this포인터, extern, friend (0) | 2021.12.03 |