[Effective C++] 인터페이스 상속과 구현 상속의 차이를 제대로 파악하고 구별하자

항목 34 : 인터페이스 상속과 구현 상속의 차이를 제대로 파악하고 구별하자.


  • 인터페이스는 외부에서 해당 객체의 동작을 명령을 내리는 버튼과 같고, 구현이란 특정 명령에 의해 어떻게 동작할지 나타내는 . 가지는 분명히 다르며 클래스 상속 관계를 설계할 때도 유념해야

  • 순수 가상 함수를 선언하는 목적은 파생 클래스에게 함수의 인터페이스만을 물려주려는 것입니다.
  • 단순 가상 함수를 선언하는 목적은 파생 클래스로 하여금 함수의 인터페이스뿐만 아니라 함수의 기본 구현도 물려받게 하자는 것입니다.
  • 비가상 함수를 선언하는 목적은 파생 클래스가 함수 인터페이스와 더불어 함수의 필수적인 구현(mandatory implementation) 물려받게 하는 것입니다.

  • 순수 가상 함수에도 정의를 제공할 있다. 순수 가상함수에도 기본 구현을 달아서 상속시킬 있다는 .
  • 판단에 따라 인터페이스만을 상속시켜도 되고, 인터페이스와 기본 구현을 함께 상속시킬 수도 있으며, 아니면 인터페이스와 필수 구현을 상속시킬 있는 것입니다.

  • 클래스를 설계할 가장 기본적인 실수 2 : 모든 멤버 함수를 비가상 함수로 선언하는 . (소멸자 부분이 골칫거리가 있다), 혹은 모든 멤버 함수를 가상함수로 선언하는 .
참조 : https://www.ikpil.com/485

댓글

이 블로그의 인기 게시물

Unity - Dialogue 시스템을 구현할 때 유용한 무료 에셋

Unity - 메타 파일

Unity - 라이브러리 폴더