Language/C++

[C++] 상속의 3가지 관계와 가상 소멸자

마탁이 2020. 12. 15. 16:08

1. 상속의 3가지 관계
  1) is-a
  2) has-a
  3) is implemented of

 

 

2. 가상 소멸자
  - 소멸자는 자식 클래스의 소멸자가 먼저 불리고나서 부모 클래스의 소멸자가 불려진다.
  - 소멸자도 자식 클래스에서 오버라이딩된 함수라고 볼 수 있기 때문에 만약 부모 포인터로 자식 객체를 삭제하면
    부모 클래스의 소멸자가 호출된다.
    따라서 소멸자를 가상함수로 선언하지 않으면 이 경우 자식 클래스의 소멸자는 결코 호출되지 않는다.
  - 가상함수 virtual이 사용되었다면 이것은 자식 클래스에서 재정의 될 수 있음을 명시하기 때문에
    포인터의 종류에 상관없이 항상 자식 클래스의 메서드가 호출된다.
     > 즉 자식클래스의 소멸자가 호출되고 부모클래스의 소멸자가 호출된다.

'Language > C++' 카테고리의 다른 글

[C++] 캐스트 연산자  (0) 2020.12.15
[C++] RTTI (RunTime Type Information)  (0) 2020.12.15
[C++] 컴파일 과정  (0) 2020.12.15
[C++] 컴파일 / 런타임 / 논리 오류  (0) 2020.12.15
[C++] 전처리기  (0) 2020.12.13