- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
标准转换匹配 任何算术类型可以互相转换 枚举类型可以转换成任何算术类型 零可以转换成任何算术类型或指针类型 任何类型的指针可以转换成void * 派生类指针可以转换成基类指针 每个标准转换都是平等的。 例 例如,对于下述的重载函数: void print(char); void print(char *); 根据标准转换匹配,下面的函数调用: print(1); 绑定到函数:void print(char); print(0.0); 绑定失败 自定义转换匹配 例如,对于下述的重载函数: void print(char); void print(double); 函数调用 print(1); // ambiguous 自定义转换匹配 print((char)1); print((double)1); 例P99 带缺省值的形式参数(P95) 在C++中允许在定义或声明函数时,为函数的某些参数指定默认值。 当调用这些函数时如果没有提供相应的实参,则相应的形参采用指定的默认值,否则相应的形参采用调用者提供的实参值。 例如,对于下面的函数声明: void print(int value, int base=10); 下面的调用: print(28); //28传给value;10传给base print(32,2); //32传给value;2传给base 续 在指定函数参数的默认值时,应注意: 1. 有默认值的形参应处于形参表的右部。例如: void f(int a, int b=1, int c=0); //OK void f(int a, int b=1, int c); //Error 2. 对参数默认值的指定只在函数声明处有意义。 3. 在不同的源文件中,对同一个函数的声明可以对它的同一个参数指定不同的默认值; 4. 在同一个源文件中,对同一个函数的声明只能对它的每一个参数指定一次默认值。 编译预处理命令 编译预处理 在程序编译前进行的处理 使用编译预处理命令由编译预处理程序完成。 编译预处理命令使用“#”开始。 编译预处理命令有: 宏定义:#define 文件包含:#include 条件编译:#if …#else…#endif 行控制:#line 其他: #pragma, #error, 宏定义 使用一个宏名命名一个字符串. 用#define来实现,是C++的一种编译预处理命令 在C++中,宏定义有4种格式: #define 宏名 文字串 // 不带参数的宏 #define凵宏名 (参数表)凵文字串 //带参数的宏 #define凵宏名 #undef凵宏名 例如: #define max(a,b) (((a)(b))?(a):(b)) #define PI 3.1415926 不带参数的宏 宏定义格式: #define 宏名 宏体 例 #define PI 3.1415926 #define DEBUG 宏引用格式:直接使用宏名 例 area = PI*R*R; 不带参数宏的说明 编译预处理系统,只是简单地进行字符替换,不作任何计算和检查。 例(P90): #define ONE 1 #define TWO ONE+ONE int I=TWO*5 =6 #define ONE 1 #define TWO ((ONE)+(ONE)) int I=TWO*5 =10 ? 如果宏体太长,宏体可以占多行 用 “\” 续行。 带参数的宏 定义格式: #define 宏名(参数表) 宏体 例 #define CUBE(x) ((x)*(x)*(x)) //注意加括号 带参数的宏的使用类似于函数,但不完全相同。 函数调用在程序执行时进行,需要进行参数类型检查,参数传递等;宏则不然 宏有时会出现重复计算。 例如: max( x+1, y*2 ) 将被替换成: (((x+1)(y*2))?(x+1 ):(y*2)) 带参数的宏的说明 宏替换在编翻译前进行。 例 (macroCube.cpp) 使用带参数的宏须小心(P94 的例) 鉴于宏定义的上述缺点,C++提供的解决函数调用效率不高问题的措施:内联函数。 #define CUBE(x) ((x)*(x)*(x)) inline int cube(int x) { return x*x*x; } void main(void) { int a=3,b=3
您可能关注的文档
最近下载
- 高中生物三年课程规划及教学进度表.docx VIP
- 医院检验科会议记录范文.docx VIP
- 新教材 人教版高中英语选择性必修第一册全册各单元知识点提炼汇总(单词短语句型语法详解及扩展).docx VIP
- 普通地图编制第九章 地图内容的表示方法.ppt
- 粮油仓储管理员(高级)职业技能鉴定参考试题(附答案).doc VIP
- 儿童学习小提琴 第1册_11520931.pdf VIP
- 变电站综合自自动化系统维护和运行.ppt VIP
- XXX市商业银行灾备切换演练整体方案.docx VIP
- 17J008 挡土墙(重力式、衡重式、悬臂式)(必威体育精装版).pdf VIP
- 堆取料机轨道安装施工方案(打印版).doc VIP
文档评论(0)