如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
预处理命令种类:宏定义#define文件包含#include条件编译#if--#else--#endif等语法格式:“#”开头占单独书写行语句尾不加分号不带参数宏定义一般形式:#define标识符字符串功能:用指定标识符代替字符串注:宏定义的替换正文可以为空:例如:#defineTIME_H这里,将标识符TIME_H作为一个标志,以便于条件编译预处理指令进行测试。宏定义例:下列程序宏替换。一般形式:#define宏名(参数表)宏体宏定义-带参数宏定义宏定义-带参数宏定义宏定义-带参数宏定义#defineMAX(x,y)(x)>(y)?(x):(y)…….main(){inta,b,c,d,t;…….t=MAX(a+b,c+d);……}宏展开:t=(a+b)>(c+d)?(a+b):(c+d);带参的宏与函数区别功能:一个源文件可将另一个源文件的内容全部包含进来一般形式:#include“文件名”或#include<文件名>条件编译:按条件对C++程序的一部分进行编译,其它部分不编译。条件编译的目的:是使源代码能更迅速、更容易地进行修改,并使目标代码缩短。这样,当程序在不同系统上编译、在同一系统不同编译器上编译或进行不同目的的编译时,减少对程序语句的修改。形式1:#ifdef标识符程序段1#else程序段2#endif意义:若该标识符已被#define命令定义,则编译程序段1,否则编译程序段2条件编译预处理器封套类的作用域不同存储类的对象具有不同的生命期。对象的生存期是指对象从创建开始到被释放为止的存在时间,即该对象的寿命。按生命期的不同,对象可分为如下三种(与介绍的变量划分情况相似)。1、局部对象:定义在一个函数体内或程序块内,作用域和生命周期都是局部的;2、全局对象:定义在某个文件中,作用域为包含该文件的整个程序,生命期是全局的;3、静态对象:分为内部静态对象和外部静态对象,生命期都是全局的,前者作用域为定义它的函数体和程序块内;后者作用域为定义它的文件。类名允许与其他变量名或函数名同名,可通过下面方法实现正确的访问:1、如果一个非类型名隐藏了类型名,则类型名通过加前缀class访问:classSample{//…};voidfunc(intSample)//形参屏蔽了类名{classSamplea;//类名前加classSample++;//形参自增运算//…}2、如果一个类型名隐藏了一个非类型名,则用一般作用域规则访问intS=0;voidfunc(){classS{…}//类S屏蔽了全局变量SSa;//定义类对象a::S=3;//引用全局变量前加作用域符}intg=S;//全局变量S给变量g初始化与构造函数相反,当对象生存期结束时,需要调用析构函数,释放对象所占的内存空间。与构造函数一样,析构函数也是类的一个公有成员函数,它的名称是在类名前加“~”构成,没有返回值,和构造函数不同的是析构函数不接受任何参数。析构函数是在对象生存期即将结束的时刻由系统自动调用的。如果程序员没有定义析构函数,系统将自动生成和调用一个默认析构函数。类的析构函数不能重载。如何调用构造函数和析构函数如何调用构造函数和析构函数如何调用构造函数和析构函数对象的赋值对象的赋值对象的赋值