Notice
Recent Posts
Recent Comments
Link
오븐 노트
[C++] enum class 본문
#include <iostream>
using namespace std;
#include <vector>
#include <list>
#include <deque>
#include <map>
#include <set>
#include <algorithm>
// unscoped enum (범위없는) // enum의 고질적 문제 : 선언된 이름이 모든 범위에 유효하기에 다른곳에서 해당 이름을 사용 할 수 없게됨.
enum PlayerType : char
{
PT_None,
PT_Knight, // 때문에 다른곳과 겹치지 않게끔 이런식으로 약자를 겹치는 경우가 흔함
PT_Archer,
PT_Mage
};
enum MonsterType
{
MT_None,
};
// 현재 범위에만 유효, 해당 enum 이름 자체가 타입처럼 작용됨
enum class ObjectType
{
Player,
Monster,
Projectile
};
int main()
{
// enum class (scoped enum)
// 1) 이름공간 관리 (scoped)
// 2) 암묵적인 변환 금지
double value1 = PT_Knight; // 보기 편한 이름일뿐 사실상 1이라는 값
//double value2 = ObjectType::Player; // 문법상 이게 맞는 표현, 하지만 암묵적 변환이 금지되어 불가능
double value2 = static_cast<double>(ObjectType::Player); // 강제 캐스팅
int choice;
cin >> choice;
if (choice == static_cast<int>(ObjectType::Monster))
{
}
unsigned int bitFlag;
bitFlag = (1 << static_case<int>(ObjectType::Player));
return 0;
}
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 - 인프런 | 강의
C++ 카테고리의 글은 인프런 Rookiss님의 강의를 공부하며 정리하는 내용입니다.
이미 알고 있는 내용도 다시 정리 되어있을 수 있습니다.
모든 글은 제가 공부하기 위해 작성합니다.
'Develop > C++' 카테고리의 다른 글
[C++] override, final (0) | 2023.12.28 |
---|---|
[C++] delete(삭제된 함수) (0) | 2023.12.13 |
[C++] using (0) | 2023.12.07 |
[C++] nullptr (0) | 2023.12.07 |
[C++] 중괄호 초기화 { } (0) | 2023.10.16 |