Page 65

1.1.6 타입 C++에서는 기본 타입(int, bool 등)을 조합해서 좀 더 복잡한 타입을 정의할 수 있다. 이 절 에서 소개하는 기법은 C 언어에서도 사용하던 것으로, C++에 어느 정도 익숙해지면 사용할 일 이 거의 없다. C++에서 제공하는 클래스가 훨씬 강력하기 때문이다. 하지만 다른 사람이 작성 한 코드를 이해하려면 이러한 방식도 알아두는 것이 좋다.

1 열거 타입 정수는 사실 연속적으로 나열한 숫자 중 하나를 표현한 것이다. 열거 타입 enumerated type ( enum ) 을 사용하면 숫자를 나열하는 방식과 범위를 마음대로 정의해서 변수를 선언하는 데 활용할 수 있다. 예를 들어 체스 프로그램을 작성할 때 각 말의 종류를 다음과 같이 int 타입의 상수로 표 현한다고 하자. 이때 말의 종류를 나타내는 정수 타입의 변수 앞에 const란 키워드를 붙이면 그 값이 변하지 않게 만들 수 있다. const int PieceTypeKing = 0; const int PieceTypeQueen = 1; const int PieceTypeRook = 2; const int PieceTypePawn = 3; // 기타 int myPiece = PieceTypeKing;

이렇게 표현해도 되지만 자칫 위험한 상황이 발생할 수 있다. 말을 표현하는 myPiece를 일반 int 값으로 표현했기 때문에 다른 프로그래머가 myPiece 값을 증가시키는 코드를 작성할 수

있다. 킹을 나타내는 값에 1을 더하면 퀸이 돼버리는데, 그러면 체스 게임이 망가진다. 심지어 누군가 갑자기 말을 나타내는 값을 앞서 정의한 상수에 나오지 않은 -1과 같은 값으로 지정하 면 더 심각한 문제가 발생할 수 있다. enum 타입을 적용하면 변수에 지정할 수 있는 값의 범위를 엄격하게 제한하기 때문에 이러한

문제를 방지할 수 있다. 예를 들어 체스의 말을 표현하는 변수가 네 가지 말에 해당하는 값만 가질 수 있도록 제한하고 싶다면 다음과 같이 PieceType이라는 enum 타입을 새로 정의한다. enum PieceType { PieceTypeKing, PieceTypeQueen, PieceTypeRook, PieceTypePawn };

1장 C++와 표준 라이브러리 초단기 속성 코스

65

Profile for 한빛미디어

전문가를 위한 C++ (개정4판) - 맛보기  

『전문가를 위한 C++』(개정4판)은 새로 추가된 기능과 관련 도구를 비롯해 C++에 대한 모든 내용을 코드와 솔루션 위주로 소개한다. 저자는 실전 프로그래밍에 적용할 수 있는 현실적인 기법을 다양하게 소개하였으며, 본 교재는 C++를 더 깊이 이해하...

전문가를 위한 C++ (개정4판) - 맛보기  

『전문가를 위한 C++』(개정4판)은 새로 추가된 기능과 관련 도구를 비롯해 C++에 대한 모든 내용을 코드와 솔루션 위주로 소개한다. 저자는 실전 프로그래밍에 적용할 수 있는 현실적인 기법을 다양하게 소개하였으며, 본 교재는 C++를 더 깊이 이해하...

Advertisement