- 函数重载
- 作用
- 函数重载语法和条件
- 函数重载原理
- 函数重载碰到默认参数
作用函数重载通常用来命名一组功能相似的函数,这样做减少了函数名的数量,避免了名字空间的污染,对于程序的可读性有很大的好处
- 复用函数名称。
- 同一个作用域(全局作用域、命名空间作用域、类作用域)
- 参数个数不同
- 参数类型不同
- 参数顺序不同
注意: 返回值类型不作为函数重载条件。(函数的返回值可以忽略)
示例
class
{
public:
int MyAdd(int a, int b);
double MyAdd(double a, double b);
double MyAdd(int a, int b, double c);
double MyAdd(double c, int a, int b);
}
- 当函数名字一样的时候,通过参数类型、参数个数、参数顺序来匹配函数调用
- 函数发生调用,首先编译器会进行严格类型匹配,如果匹配不成功,编译器对参数进行隐式类型转换,转换成功,则可进行函数调用
编译器为了实现函数重载,也是默认为我们做了一些幕后的工作,编译器用不同的参数类型来修饰不同的函数名。
比如 void func(); 编译器可能会将函数名修饰成 _func,
函数重载碰到默认参数
- 当重载的函数具有默认值的时候,要避免二义性
int my_function()
{
cout << "hello world";
return 0;
}
int my_function(int val = 100)
{
return 100;
}
void test04()
{
my_function(); //err
//my_function(10);
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)