函数重载

c++ pp page 227

1.函数重载的关键是函数的参数列表(函数特征标);如果两个函数的参数数目和类型相同,同时参数的排列顺序也相同,则它们的特征标相同。

仅返回类型不同的函数不能重载,重载的特征标必须不同。

2.编译器在检查函数特征标时,将把 一个类型的引用 和该类型本身视为同一个特征标。因此:

doubel cube(double x);
double cube(double & x);
...
cout<<cube(x)<<endl;

上述代码中参数x和 double x 的原型以及 double & x 的原型都匹配,因此编译器无法确定究竟应该使用哪个原型。

3.匹配参数时,要区分const 和非const变量。

指向const数据的指针形参可与const数据的和非const数据的地址参数匹配,因为将非const数据的地址指赋给指向const的指针是合法的。

这里注意,在c++ pp page 227的例子中,

void dabble(char * bits);
...
const char p1[20] = "how are you?";
dabble(p1);

上述例子中,将 const char * 转换为 char * 类型是非法的,因为该例子将const数据的地址(p1)赋给了普通指针。

posted @ 2022-03-11 20:06  SanFranciscoo  阅读(99)  评论(0编辑  收藏  举报