1、类的深入剖析(第 I部分)n 预处理命令n Time类实例研究n 类的作用域n 析构函数n 如何调用构造函数和析构函数n 默认的逐个成员赋值预处理命令所谓编译预处理就是编译器在对源程序进行正式编译前,根据预处理指令先做一些特殊的处理工作,然后将源程序与预处理的结果一起进行编译。C+ 语言的预处理主要包括 3 方面的操作: 嵌入指令、宏定义和条件编译指令 。应当说明的是,编译预处理指令不属于 C+ 语言的语法范畴。因此,预处理指令具有其特有语法。种类:n 宏定义 #definen 文件包含 #includen 条件编译 #if-#else-#endif等语法格式:n “#”开头n 占单独书写行n
2、 语句尾不加分号预处理命令n 不带参数宏定义 一般形式: #define 标识符 字符串 功能 : 用指定标识符代替字符串 注: 宏定义的替换正文可以为空:例如: #define TIME_H这里,将标识符 TIME_H 作为一个标志,以便于条件编译预处理指令进行测试。宏定义宏定义n 定义位置 :任意 (通常放在文件开头,函数之外 )n 作用域 :从定义命令到文件结束n #undef 可终止宏名作用域n 格式: #undef 标识符宏定义可嵌套,不能递归例 #define MAX MAX+10 ()#define A 3#define B A+A #define C B*B 例 :下列程序宏替换。#include using namespace std;#define N 2#define M N+1# define NUM (M+3)*M/2void main() int i;for (i=0; in using namespace std;n #define S(x,y,z) x*y+zn void main()n n int a=1, b=1,c=2;n coutS(a+b,b+c,c+a);n