◎ 예약어 enum
* 열거자라고 불리는 집합의 원소들(식별자)을 선언 할수 있게 한다.
* 이 원소들의 유한 집합에 이름을 부여할 수 있게 한다.
enum day {sun,mon,tue,wed,thu,fri,sat};
이 선언은 사용자 정의 형 enum day를 생성한다. 예약어 enum다음에 오는 day가 태그 이름이다.
열거자 = 식별자 : sun, mon ... sat등이며 int 형상수.
첫번째 원소는 0을 갖고 열거 순서에 따라 순차적인 정수 값을 갖는다.
⇒ enum day {sun=0, mon=1, tue=2, wed=3, thu=4, fri=5, sat=6};
enum day d1,d2;
d1,d2를 enum day형으로 선언한 것. 이 변수들은 집합내의 원소들만 값으로 가질수 있다.
d1 = fri; d1은 5로 저장되있다. int형으로 값을 찍으면 5가 나온다.
※ enum자체는 자료형이 아니다. enum day가 자료형이다. 열거자는 초기화 될 수 있다. 열거자가 선언된 후 바로 변수를 선언할 수 있다.
ex1) enum suit {clubs=1, diamonds, hearts, spades} a, b, c;
clubs는 1로 초기화되있다. a, b, c는 같이 선언되었다.
clubs가 1로 초기화 되었기 때문에 diamonds=2, hearts=3, spades=4의 값을 갖는다.
enum suit {clubs=1, diamonds, hearts, spades} a, b, c;
└> 형지정 └> 이 자료형의 변수
ex2) enum fruit{apple=7, peat, orange=3, lemon} fri;
apple가 7로 초기화 되어서 peat는 8의 값을 갖는다. orange가 3의 값이여서 lemon은 4 의 값을 갖는다.
ex3) enum veg {beet=17, corn=17}; vege1, vege2;
동일한 값이 여러 식별자에게 허용될 수 있지만, 식별자는 중복되면 안되고 유일해야함.
ex4) enum {fir, pine} tree;
테그 이름이 반드시 필요한 것은 아니다. 테그 이름이 없으므로 변수 tree만이 선언되었을 뿐
enum {fir, pine}형으로 다른 변수를 선언할 수 없다.
※ 일반적으로, 열거자는 프로그램-지정 상수로 취급, 프로그램의 명확성을 위해 사용. 만일 필요하다면, 열거자의 기본 값은 캐스트를 사용해 얻을 수도 있다. 한 함수내의 변수와 열거자는 서로 다른 유일한 식별자를 가져야 한다.
에제 :
Class Student
{
public:
enum {
Kim = 1,
Jung = 2,
Lee = 3
};
void Get(int student);
};
enum내 항목을 참조하려면
Student s;
s.Get(Student::Kim);
s.Get(Student::Jung);
s.Get(Student::Lee);
0