首页 > 学院 > 开发设计 > 正文

3、函数的升级(下)

2019-11-08 02:26:57
字体:
来源:转载
供稿:网友
1、重载   同一个标识符在不同的上下文有不同的意义   2、函数重载    同一个函数名定义不同的函数    当函数名和不同的参数搭配时函数的含义不同    int func(int x)        int func(int a, int b)        int func(char *s)    3、函数重载至少满足下面的一个条件:    参数个数不同    参数类型不同    参数顺序不同    4、当函数默认参数遇上函数重载,会发生二义性,调用失败,编译不能通过5、编译器调用重载函数的准则     将所有同名函数作为候选者     尝试寻找可行的候选函数        ·精确匹配实参        ·通过默认参数能够能够匹配实参        ·通过默认类型转换匹配实参     匹配失败         最终寻找到的可行候选函数不唯一,则出现二义性,编译失败。         无法匹配所有候选者,函数未定义,编译失败。6、函数重载的注意事项    重载函数在本质上是相互独立的不同函数    重载函数的函数类型是不同的    函数返回值不能作为函数重载的依据       函数重载是由函数名和参数列表决定的。7、函数重载与函数指针    当使用重载函数名对函数指针进行赋值时       ·根据重载规则挑选与函数指针参数列表一致的候选者       ·严格匹配候选者的函数类型与函数指针的函数类型   8、C++和C的相互调用    利用extern关键字强制让C++编译器对代码进行C方式编译    extern "C"    {       #include "add.h"    }       统一的解决方案       ·__cplusplus是C++编译器内置的标准宏定义       ·__cplusplus的意义           ·让C代码既可以通过C编译器的编译,也可以在C++编译器中以C方式编译               #ifdef __cplusplus               extern "C" {               #endif                              //函数声明 或 函数定义                              #ifdef __cplusplus               }               #endif               9、C++编译重载函数时不能以C的方式编译10、小结  ·函数重载是C++对C语言的一个重要升级  ·函数重载通过函数参数列表区分不同的同名函数  ·函数的返回值类型不是函数重载的重要的依据  ·extern关键字能够实现C和C++的相互调用  ·C和C++并不对立,可以同时存在于项目中
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表