승쨩개발공부

[C++] 오버라이딩 본문

C++

[C++] 오버라이딩

SeungHyune 2021. 12. 3. 21:48

오버라이딩

상속 관계에서 부모 클래스의 함수를 자식 클래스에 재정의하는 문법.

-> 단, 반환 타입, 함수이름, 매개변수 정보가 모두 동일해야한다.

 

부모와 자식이 동일한 함수를 가지고 있고, 이를 호출할 경우 모호성이 발생해야 한다.

즉, 부모와 자식 둘 다 같은 이름의 함수를 가지고 있어야 된다.

단, 오버라이딩은 모호성이 발생하지 않는다.

 

오버라이딩 된 함수를 호출할 경우 실 객체 기준으로 판단하지 않고

객체 타입 기준으로 판단하여 함수를 호출한다.

-> 객체 타입 기준의 함수가 앞으로 나오고, 실 객체의 함수가 뒤로 숨는다.

 

 

CPlayer는 CObj를 상속 받고 있다.

-> CObj의 CPlayer 클래스 내부에는 Func()함수가 있다.

-> 당연히 모호성이 발생해야 하지만, 오버라이딩 문법이 적용되어 모호성이 발생하지 않는다.

 

 

오버라이딩 정리

부모와 자식이 동일한 함수를 가져도 모호성을 없애주는 문법.

호출 시에는 객체 타입 기준으로 호출할 함수를 판단한다.