C++函数
C++函数
函数的返回值可以是引用,但不能是局部变量的引用
函数重载
重载函数的返回值类型和参数可以不同
重载和const形参
一个拥有顶层const的形参无法和另一个没有顶层const的形参区分
如果形参是某种类型的指针或者引用,则通过区分其指向的是常量还是非常量来实现函数重载,此时const是底层的
重载和作用域
如果在内层作用域中声明名字,它将隐藏外层作用域中声明的同名实体
void print(const string &s);
void print(double);
void fun(){
void print(int);//注意此处print(string)和print(double)被隐藏
print("hello");//错误,此处调用的是print(int)
}
特殊用途语言特性
默认实参
**注意:**在给定的作用域中一个形参只能被赋予一次默认实参
通常,应该在函数声明中制定默认实参,并将该声明放在合适的头文件中
局部变量不能作为默认实参,全局变量可以作为默认实参
内联函数和constexpr函数
内联函数
在返回类型前加上inline关键字,将函数定义成内联函数
内联函数可以避免函数调用的开销