@ 16. 1 ~ 17. 1/면접관련

부모클래스의 메서드가 오버로딩된 메서드인 경우

namoeye 2017. 1. 4. 20:43

특정 이름과 파라미터로 메서드를 오버라이딩 하면 파라미터와 관계없이 같은 이름을 가지는 부모클래스의 모든 메서드들이 숨겨진다.

A클래스

virtual void sh();

virtual void sh(int i);

 

B클래스 : public A클래스

virtual void sh();

 

하게 되면

B클래스.sh(1)는 호출이 안된다.

A클래스에서 정의한 함수들이 모두 숨겨진다.

할 수 있는 방법은 부모의 포인터로 자식의 객체를 가리키고 실행하면 된다.


그냥 모두다 오버라이딩 하는게 낫다.


아래 내글 다시 참고


출처: http://namoeye.tistory.com/entry/%EB%A9%94%EC%84%9C%EB%93%9C-%EC%98%A4%EB%B2%84%EB%9D%BC%EC%9D%B4%EB%94%A9virtual%EC%9D%98-%ED%8A%B9%EC%88%98%ED%95%9C-%EA%B2%BD%EC%9A%B0%EB%93%A4 [Develop]