c++基础学习4-c++函数b

来源:互联网 发布:js print setup 插件 编辑:程序博客网 时间:2024/06/09 16:08

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的方式编译多个重载函数





0 0