#ifndef CALCENG_H
#define CALCENG_H
class CalcEng
{
...
};
#endif
这种结构是避免重复包含同一个头文件,引起类的重定义。
#ifdef/#ifndef 的意思, 看看有关预处理器条件编译的部分。
这个例子中,第一次包含此文件时, 宏 CALCENG_H 还没有被定义,#ifndef CALCENG_H
的值为真,一直到相应的 #endif 之间的代码都会被编译,包括了类的定义 和 定义宏 CALCENG_H。
当在同一文件中再包含此文件,宏 CALCENG_H 已经存在,#ifndef CALCENG_H 值为假,
#ifndef 和 #endif 之间的代码就不会被编译了,从而避免了重复定义 class CalcEng。
注意:宏定义的有效范围只在一个文件中。