080. enum class 이해하기

jychan99·2021년 11월 23일
0
 #include <iostream>

using namespace std;



enum Status

{

	normal = 0,

	abnormal,

	disconnect = 100,

	close

};

enum class MachineStatus : char //자료형을 명시하지 않은면 자동으로 int형이 된다.

{

	normal = 'n', //n은 아스키코드로 110임

	abnormal,	//따라서 111이 할당됨

	disconnect = 100,

	close	//101

};

//enum class는 enum의 한계를 극복하기위해 만들어졌다. enum요소에 속하는 상수들은

//일반 상수들 처럼 이름이 겹치면 안되지만, enumclass가 등장함으로써 같은 이름의 enum 요소를 

//사용할 수 있게 되었습니다.

int main()

{

	MachineStatus machine = MachineStatus::abnormal; //enum클래스의 abnormal값이 할당됨



	if (machine == MachineStatus::normal)

		cout << "Status : normal" << endl;

	else if (machine == MachineStatus::abnormal)

		cout << "Status : abnormal" << endl;

	else if (machine == MachineStatus::disconnect)

		cout << "Status : disconnect" << endl;

	else

		cout << "Status : close" << endl;



	cout << "machine : " << static_cast<int>(machine) << ", " << static_cast<char>(machine) << endl;

	// 변수machine의 값을 정수형, 문자형으로 각각캐스팅해서 출력

	return 0;

}
profile
내가 지금 두려워 하고 있는 일이 바로 내가 지금 해야 할 일이다. 🐍

0개의 댓글