[ Effective C++ ] 항목 36 : 상속받은 비가상 함수를 파생 클래스에서 재정의하는 것은 절대 금물!

Minsu._.Lighting·2023년 12월 9일
0

[ Effective C++ ] 정리 모음집
" C++ 프로그래머의 필독서, 스콧 마이어스의 Effective C++ 를 읽고 내용 요약 / 정리 "

[핵심]

" 제목이 곧 핵심! "

  • 상속받은 비가상 함수를 재정의하는 일은 절대로 하지 말자!

💡 public 상속 관계에서 비가상 함수를 재정의 하면?

  • 설계에 모순이 발생
    - 모든 파생 클래스는 기본 클래스의 일종(is-a 관계)이란 명제가 거짓이 된다
    - public 상속은 기본 클래스의 모든 것을 파생 클래스가 그대로 받는 것이고 심지어 모든 파생 클래스로 하여금 같은 기능을 하는 비가상 함수를 재정의 한다는 것은 public 상속을 하면 안된다는 것

📢 무조건 public 상속을 받아야 하는 상황에서 비가상 함수를 재정의 해야 한다면?
- 해당 함수를 비가상 함수가 아닌 가상 함수로 만들어라!

📢 다형성을 부여한 기본 클래스의 소멸자를 반드시 가상 소멸자로 만드는 이유와 궤를 같이한다!
- [ 항목 7 : 다형성을 가진 기본 클래스에서는 소멸자를 반드시 가상 소멸자로 선언하자 ] 참조

profile
오코완~😤😤

0개의 댓글

관련 채용 정보