본문 바로가기

[C++]클래스에 넣을 수 있는 다른 것들.

반응형

멤버변수와 멤버함수 외에 클래스의 정의 안에서 자주 사용하는 것들…. 열거체와 typedef.

   

[열거체]

   

int A= 1;

int B= 2;

int C= 3;

   

enum {A =101, B , C = 201, ….}

자동으로 정수가 입력이 된다.

   

하나하나 입력하기 힘들므로 enum으로 입력하면

자동으로 정수가 입력이 되고 A에 101을 입력하면 자동으로 101,102… 입력되고

중간에 201을 입력하면 다음부터는 201, 202 이렇게 입력된다.

   

   

클래스의 정의안에 열거체를 만드는 거나 밖에 만드는거나 그게 그거다.

그런데 왜 클래스 안에 하라고 하나?

그냥 보고 관리하기 편하기 위한 것 같음.

책에서는 … 클래스의 안에서만 사용하거나 클래스와 관련된 열거체의 경우에는 클래스의 소솓으로 두는 것이 좋다.

Point 객체가 가질 수 있는 x,y 값의 범위를 열거체로 정의했다. 상수대신에 심블을 사용하면 소스코드를 읽기도 쉽고 관리하기도 편하다.

   

static const 맴버변수의 사용

클래스 안에서 사용할 심볼을 만드는 방법 중에는 static const 멤버 변수를 사용하는 방법도 있다. 정확하게 말하면 const 속성을 가진 정적 멤버 변수라고 할 수 있다.

클래스 정의에서 멤버 변수를 초기화하는 것은 불가능, 하지만 static const인 경우에는 허용됨.

하지만 사용된지 얼마 안되서 적용되지 않은 컴파일러도 있음.아직까지는 열거체를 사용하는 것이 일반적임.

   

[typedef]

클래스 안에서만 통용하는 타입을 재정의 하는데 사용.

   

멤버변수 x, y의 타입과 관련된 것을 모두 COOR_T로 바꿨다. COOR_T는 결국 int 타입.

나중에 x,y의 타입을 float으로 바꾸고 싶다면 typedef float COOR_T; 이렇게 바꿔주면 된다.

함수와 멤버변수만이 아니라 열거체, typedef 같은 것들도 클래스와 관련된 것이라면 클래스 정의 안쪽에 위치시키는 것이 좋다. 응집력이 좋은 프로그램이 된다.

   

   

   

   

   

   

반응형
-->