C++
[C++] 오버라이딩
SeungHyune
2021. 12. 3. 21:48
오버라이딩
상속 관계에서 부모 클래스의 함수를 자식 클래스에 재정의하는 문법.
-> 단, 반환 타입, 함수이름, 매개변수 정보가 모두 동일해야한다.
부모와 자식이 동일한 함수를 가지고 있고, 이를 호출할 경우 모호성이 발생해야 한다.
즉, 부모와 자식 둘 다 같은 이름의 함수를 가지고 있어야 된다.
단, 오버라이딩은 모호성이 발생하지 않는다.
오버라이딩 된 함수를 호출할 경우 실 객체 기준으로 판단하지 않고
객체 타입 기준으로 판단하여 함수를 호출한다.
-> 객체 타입 기준의 함수가 앞으로 나오고, 실 객체의 함수가 뒤로 숨는다.

CPlayer는 CObj를 상속 받고 있다.
-> CObj의 CPlayer 클래스 내부에는 Func()함수가 있다.
-> 당연히 모호성이 발생해야 하지만, 오버라이딩 문법이 적용되어 모호성이 발생하지 않는다.
오버라이딩 정리
부모와 자식이 동일한 함수를 가져도 모호성을 없애주는 문법.
호출 시에는 객체 타입 기준으로 호출할 함수를 판단한다.