-
항목 36 : 상속받은 비가상 함수를 파생클래스에서 재정의하지말것@ 16. 1 ~ 17. 1/Effective C++ 2015. 1. 25. 23:27
왜냐면
비가상 함수는 가려지기 때문이다.
예를 들어
기본클래스 *ptr=new 파생클래스
일 경우...
ptr은 기본클래스에 대한 포인터 타입으로 선언되었기 때문에
ptr을 통해 호출되는 비가상 함수는 항상 기본클래스에 정의되어 있을 것이라고 결정해 버린다.
심지어 기본클래스에서 파생된 파생클래스 객체를 가리키고 있다 해도 마찬가지다.
(가상함수와 반대로 객체를 가리키는 포인터 타입에 따라 좌우된다..
가상함수는 실제 객체죠?? ㅎ)
'@ 16. 1 ~ 17. 1 > Effective C++' 카테고리의 다른 글
#define cosnt 상수변수로 바꾸기! operator[], const static, 클래스내 const, define 매크로 (0) 2015.12.03 항목 37 : 어떤 함수에 대해서도 상속받은 기본 매개변수 값은 절대로 변경금지 (0) 2015.01.25 항목 35 : 가상 함수 대신 쓸 것들도 생각해 두는 자세를 .. (0) 2015.01.25 항목 10 : 대입 연산자는 *this의 참조자를 반환한다 (0) 2015.01.15 항목 9 : 객체 생성 및 소멸자에 절대로 가상 함수 호출 금지 (0) 2015.01.15