当前位置:文档之家› c++中的重载函数

c++中的重载函数

重载函数
几个不同的函数有着相同的名字,在调用时根据参数的不同来确定调用哪个函数,这就是C++提供的函数重载机制。
所谓重载(overload)函数就是在同一个作用域内几个函数名字相同但形参列表不同。例如在同一个作用域内同时定义几个add()函数。

void add(int x, int y);
void add(float x);
double add(double x, double y);
这几个就是重载函数,它们函数名相同但参数列表却不相同,参数列表的不同有三种含义:参数个数不同,或者参数类型不同或者参数个数和类型都不同。


重载与const形参
如果是底层的const形参,即const修饰的是指针指向的变量,则通过区分其指向的是常量对象还是非常量对象可以实现函数重载,例如下面两对函数:
void func1(int *x); //普通指针
void func1(const int*x); //常量指针
void func2(int &x); //普通引用
void func2(const int &x); //常引用

重载和默认参数
当使用具有默认参数的函数重载形式时须注意防止调用的二义性,例如下面的两个函数:
int add(int x, int y = 1);
void add(int x);
注意:当有如下函数调用时就会产生歧义:add(10);它既可以调用第一个add()函数也可以调用第二个add()函数,编绎器无法确认到底要调用哪个重载函数,这就产生了调用的二义性

相关主题
文本预览
相关文档 最新文档