复习笔记
--C++之重载
函数重载:在同一作用域内函数名相同而参数列表不同定义的来实现功能相同或相似的多个函数,即通过函数参数列表而唯一标识并区分函数的一种特殊的函数。
一. 注意:
1) 函数的参数列表不同:包括参数数目不同或者参
数数目相同但参数类型不同;只有函数的返回类型不同或者参数数目和类型都相同但默认实参不同不是函数重载。
2)const限定的参数按值传递时并不能够构成函数的重载。
Eg: void print(inta) { cout << " int is " << a << endl; }
void print(int const a) {cout <<" int const is " << a ;}
3)const限定的参数按指针传或者按引用传递递给函数时能够构成有效的函数重载。
Eg:void print(int *a) { cout << " int is " << *a<< endl; }
void print(int const *a) {cout<< " int const is " << *a }
void print(int &a) { cout << " int is " << a<< endl; }
void print(int const &a) {cout << " int const is " << a;}
4) 即使可变成员函数和常量成员函数有相同的形参列表,可变成员函数也可以被常量成员函数重载。
二. 重载决议:
5类匹配过程:
a) 完全匹配,包括添加限定符const和数组到指针的转换。
b) 提升:char->int、usigned char->int、signed char->int、enum->int、short->int、usigned sho