1.函数中参数引用const
例如: int f(const string &s)
使用const为是为了防止修改,引用&是为了避免实参赋值给形参的时候进行拷贝。
2.函数重载
函数名字相同,形参列表不同
不允许其他都一样,返回类型不同
Record lookup(const Account&);
bool lookup(const Account&);
习题:
6.32什么情况下返回的引用无效?什么情况下返回常量的引用无效?
当返回的引用的对象是局部变量时,返回的引用无效;当我们希望返回的对象被修改时,返回常量的引用无效。
6.36
string (&f(int i)) [10]
6.39
(a) int calc(int, int); int calc(const int, const int); (b) int get(); double get(); (c) int *reset(int *); double *reset(double *);
说明在下面的每组声明中第二条语句是何含义。 如果有非法的声明,请指出来。
- (a) 非法。因为顶层const不影响传入函数的对象,所以第二个声明无法与第一个声明区分开来。
- (b) 非法。对于重载的函数来说,它们应该只有形参的数量和形参的类型不同。返回值与重载无关。
- (c) 合法