1. #define 的危害
#define max(a,b) ((a) > (b) ? (a) : (b))
int a = 5, b = 0;
max(++a, b);// a 的值增加了2次
max(++a, b+10); // a 的值只增加了1次
2. 定义类中的常量
//方法一:
class EngineeringConstants
{
private:
要把常量限制在类中,首先要使它成为类的成员;
为了保证常量最多只有一份拷贝,还要把它定义为静态成员
static const double FUDGE_FACTOR;
int scores[FUDGE_FACTOR]; // error
};
const double EngineeringConstants::FUDGE_FACTOR = 1.35;
//方法一:
class EngineeringConstants
{
private:
enum { NUM_TURNS = 5 };
int scores[NUM_TURNS];
};