6.函数
含有函数声明的头文件应该包含到定义函数的源文件中
形参初始化的机理与变量初始化一样
在c++语言中建议使用引用类型的形参来代替指针
如果函数无需改变引用形参的值,最好将其声明为常量引用
和其他使用数组的代码一样,以数组作为形参的函数也必须确保使用数组时不会越界
&两端的括号不能少
f(int &arr[10]) //将arr声明成了引用的数组元素
f(int (&arr)[10]) //arr是具有10个整形数组的引用
*两端的括号不能少
int *a[10]; //10个执政构成的数组
int (*a)[10]; //指向含有10个整数的数组的指针
省略符形参应该仅仅用于C和C++通用的类型。特别应该注意的是,大多数类类型的对象在传递给省略符形参时都无法正确拷贝
在含有return语句的循环后面也应该有一条return语句,如果没有的话该程序就是错误的。很多编译器都无法发现此类错误
main函数不能重载
一般来说,将函数声明置于局部作用域内不是一个明智的选择。(会覆盖掉)
在C++语言中,名字查找发生在类型检查之前
通常,应该在函数声明中指定默认实参,并将该声明放在合适的头文件中
内联说明只是向编译器发出的一个请求,编译器可以选择忽略这个请求
constexpr函数不一定返回常量表达式
如果函数含有默认实参,则我们在调用该函数时传入的实参数量可能少于它的实际使用实参数量
如果没找到可行函数,编译器将报告无匹配函数的错误
调用重载函数时应尽量避免强制类型转换。如果在实际应用中确实需要强制类型转换,则说明我们设计的形参集合不合理
内置类型的提升和转换可能在函数匹配时产生意想不到的结果
含有函数声明的头文件应该包含到定义函数的源文件中
形参初始化的机理与变量初始化一样
在c++语言中建议使用引用类型的形参来代替指针
如果函数无需改变引用形参的值,最好将其声明为常量引用
和其他使用数组的代码一样,以数组作为形参的函数也必须确保使用数组时不会越界
&两端的括号不能少
f(int &arr[10]) //将arr声明成了引用的数组元素
f(int (&arr)[10]) //arr是具有10个整形数组的引用
*两端的括号不能少
int *a[10]; //10个执政构成的数组
int (*a)[10]; //指向含有10个整数的数组的指针
省略符形参应该仅仅用于C和C++通用的类型。特别应该注意的是,大多数类类型的对象在传递给省略符形参时都无法正确拷贝
在含有return语句的循环后面也应该有一条return语句,如果没有的话该程序就是错误的。很多编译器都无法发现此类错误
main函数不能重载
一般来说,将函数声明置于局部作用域内不是一个明智的选择。(会覆盖掉)
在C++语言中,名字查找发生在类型检查之前
通常,应该在函数声明中指定默认实参,并将该声明放在合适的头文件中
内联说明只是向编译器发出的一个请求,编译器可以选择忽略这个请求
constexpr函数不一定返回常量表达式
如果函数含有默认实参,则我们在调用该函数时传入的实参数量可能少于它的实际使用实参数量
如果没找到可行函数,编译器将报告无匹配函数的错误
调用重载函数时应尽量避免强制类型转换。如果在实际应用中确实需要强制类型转换,则说明我们设计的形参集合不合理
内置类型的提升和转换可能在函数匹配时产生意想不到的结果