1,c++中的函数重载
什么叫函数重载?
1 ,用同一个函数名定义不同的函数。
2 ,当函数名和不同的参数搭配时函数的意义不同。
函数重载至少满足三个条件中的一个{
1,参数个数不同
2 ,参数类型不同
3 ,参数顺序不用
}
下面看一个例子
这个程序在编译的时候会出现错误? 究竟为什么呢?
其实,当函数默认参数遇到函数重载时,程序会出现二义性,所以说当使用了两者其一时,就不要使用另外一个了。
编译器调用重载函数
编译器在调用重载函数的时候,会匹配,实参类型,实参个数及顺序都一致的函数来调用。并且这些函数在匹配的时候 是同时匹配,而不是匹配这个之后再匹配下一个。
如果可选择的函数不唯一或者没有可选择的匹配函数,那么会匹配失败。例子同上
函数重载的注意事项
1,重载在本质上是相互独立的不同函数
2,函数的返回值不会作为函数重载的依据
3,函数重载就是函数名称,和参数决定的
函数重载与函数指针
当使用函数重载名对函数指针进行赋值时
1,根据重载规则挑选与函数指针参数列表一致的重载函数。
2,严格重载函数的函数类型与函数指针的函数类型。
例
这样将fun函数的出错例子就是上面所说的情况
c++和c的相互调用
使用c和c++两种语言在项目中是经常用到的,那么如何才能让这两种语言兼容呢?
1,首先c++编译器虽然能兼容c语言的编译方式。但c++编译器会优先使用c++的编译方式进行编译,这样就需要extern 关键字让编译器对代码进行c语言的方式编译。
例如
2 __cplusplus是c++编译器内置的标准宏定义。
__cplusplus的意义
让c代码既可以通过c编译器的编译,也可以再c++编译器中以c方式编译
但是要注意:c++编译器不能以c的方式编译多个重载函数