C++ - [전방선언] (feat. Class)

실버타운·2023년 7월 18일

C++

목록 보기
9/10
post-thumbnail


1. 전방선언

CObject class를 CScene.h에 전방선언하여 CScene class에서 사용

  • 하나의 Scene안에 여러 Object가 존재 할 수 있기 때문에 Object의 Root인 CObject.h를 참조해야 한다.
    • 하지만! CObject.h를 #include 할 경우 CObject 파일에 변경점이 생길 때마다 CSene 파일도 그에 맞춰 수정해줘야 하는 번거로움이 생긴다.
    • 이처럼 .h(헤더) 파일이 서로를 참조하는 것을 최소화(방지)하기 위해 전방선언을 이용한다.
  • 전방선언을 할 경우 컴파일 단계에서는 선언한 class의 멤버를 알 수 없기 때문에 *(포인터) 타입만 사용이 가능하다.

2. 부모class의 소멸자 가상함수

매우 중요!

  • 부모 class의 소멸자에 virtual 키워드를 사용해 가상함수 테이블에 등록해야 한다.
    • virtual 키워드를 사용하지 않을 경우 파생된 자식 class에서 소멸자를 호출하면 부모 class의 소멸자만 호출되고 자식class의 소멸자가 호출되지 않는 오류가 발생할 수 있다.
    • 따라서, 반드시 부모 class의 소멸자에는 virtual 키워드를 명시해야 한다.
profile
개발 공부 일지

1개의 댓글

comment-user-thumbnail
2023년 7월 18일

항상 좋은 글 감사합니다.

답글 달기