강의

멘토링

커뮤니티

Inflearn コミュニティ Q&A

mindol のプロフィール画像
mindol

投稿した質問数

C++とUnrealで作るMMORPGゲーム開発シリーズ Part1: C++プログラミング入門

TextRPG(OOP)#3

virtual 질문

作成

·

321

0

부모 클래스에서 virtual 선언된 함수가 자식 클래스에서 오버라이딩될 때 자식클래스에서도 꼭 virtual을 써줘야 하나요?

아니면 쓰나 안쓰나 똑같이 virtual로 처리돼서 별 상관 없나요?

C++

回答 3

1

Rookiss님의 프로필 이미지
Rookiss
インストラクター

소멸자를 따로 정의하지 않으면,
기본적으로 ~Classname() { }이 만들어진다고 보시면 됩니다.
(virtual이라면 virtual ~Classname() {} 이겠죠)

1

Rookiss님의 프로필 이미지
Rookiss
インストラクター

안 써도 똑같이 virtual 처리가 되긴 하지만,
매 번 부모 클래스를 일일히 확인할 순 없으니
가독성 차원에서라도 virtual을 붙이는 것을 권장드립니다.

0

ms님의 프로필 이미지
ms
質問者

추가로 헷갈리는거 질문할 게 있습니다.

creature랑 player클래스 소멸자에 virtual을 붙이고 { }안에는 아무것도 선언 안한 채로 두고,  Knight같은 직업 클래스는 소멸자를 정의 안하고 있는데, 

어차피 _player가 자식클래스 객체의 포인터라서 delete할 시 완전하게 할당 해제가 될 텐데 부모 클래스에 소멸자를 정의할 필요가 있나요?

질문이 좀 난잡한데 요지는 Knight등의 직업 클래스는 왜 소멸자를 정의 안했는지 이유가 궁금합니다.

mindol のプロフィール画像
mindol

投稿した質問数

質問する