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

函数重载的一些陷阱

2019-11-14 09:18:32
字体:
来源:转载
供稿:网友

关于函数重载有一些细节需要注意:

函数重载的关键是参数列表(或称函数特征标)不同。请记住,是特征标,而不是返回类型使得函数进行重载。即,返回类型可以不同或相同,但特征标必需不同。

注意以下两个原型无法构成重载:

double cube (double x);

double cube (double & x);

从编译器角度考虑,当执行cout << cube(x)时,编译器无法确定究竟用哪一个原型。因此,编译器把类型引用和类型本身视为同一个特征标。

匹配函数时,并不区分const和非const变量。具体而言,如果某函数有用于const和非const参数的两种原型,则编译器会根据实参是否为const来决定使用哪个原型。如果某函数仅有const参数原型,则可以接受const和非const两种实参;如果某函数仅有非const参数原型,则只能接收非const实参。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表