* 단순한 상수를 쓸 때는, #define보다 const 객체 혹은 enum을 우선 생각합시다.
#define ASPECT_RATIO 1.653 //대신에 const double AspectRatio = 1.653d;
Class 안에 배열의 크기를 지정하는 것과 같은 경우는 변수가 정의가 되어 있어야 한다. 하지만 header 파일에서는 변수는 선언만 하지 정의를 하지 않는다. 이럴 경우에는 나열자 둔갑술(enum hack) 을 사용하면 된다.
class Player { private: enum { NumTurns = 5 }; int scores[NumTurns]; ... };
* 함수처럼 쓰이는 매크로를 만들려면, #define 매크로보다 inline 함수를 우선 생각합시다.
#define CALL_WITH_MAX(a, b) ((a) > (b) ? (a) : (b)) template<typename T> inline const T callWithMax(const T&a, const T&b) { return a > b ? a: b; }
댓글 없음:
댓글 쓰기