-
Effective C++...1일지 2022. 5. 27. 08:09
클래스 범위에 상수 정의
클래스 범위에만 상수를 적용할 때는 정적(static) 멤버로 만드는 게 좋다.
이때, 헤더(.h 파일)에는 선언만 존재해야 하고 정의는 구현(.cpp 파일)에 들어가야 한다.
※ 클래스 컴파일 시 상수 값이 필요한 경우는 예외로 둔다.
// CostEstimate.h
class CostEstimate {
static const double FudgeFactor;
}
// CostEstimate.cpp
const double CostEstimate::FudgeFactor = 1.35;
나열자 둔갑술(enum hack)클래스 컴파일 시 상수 값이 필요한 경우 상수 대신 enum을 선언하여 사용할 수 있다.
※ enum은 쓸데없는 쓸데없는 메모리 할당이 발생하지 않는다.
class GamePlayer {
private:
enum { NumTurns = 5 };
int scores[NumTurns];
}