프로그래밍/C++

#65. enum class & override & final

코딩하는상후니 2022. 7. 22. 22:34

 


 

*enum class ( scoped enum )
1. 이름공간 관리 ( scoped )
2. 암묵적인 변환 금지
 
 
 
*enum
enum PlayerType : short
{
	None
	PT_Knight = 5,
	PT_Archer,
	PT_Mage,
};

enum MonsterType
{
	None  // => 재정의 에러
}

double value = PT_Knight;
 
=> 전역으로 퍼짐.
=> 이름 재정의 문제
=> 암묵적 변환 가능.

 

 


 

*override
 
 
virtual void Attack() override;
virtual void Attack() const => OK => virtual 함수인지 알기 어렵다.
 
=> override 를 붙이면 기존 부모 virtual 함수를 제거했을 때,
컴파일러가 ERROR 표시 반환.
 
 
=> virtual  /  override 키워드를 되도록 붙이자. ( 코드 안정성  /  가독성 )

 


 

*final
=> 자손들에게 더 이상 override 를 해주지 않겠다.
 

 

본 내용은 인프런의 루키스님 강의를 듣고 정리한 내용입니다.