1. 函数必须指定返回类型
2. 没有任何形参的函数可以用空形参表或含有单个关键字void的形参表来表示。
3. 与所有引用一样,引用形参直接关联到其所绑定的对象,而并非这些对象的副本。
4. 如果函数使用非引用的非const形参,则既可以给该函数传递const实参也可传递非const实参.
5. 如果函数具有普通的非const引用形参,则显然不能通过const对象进行调用,传递一个右值或具有需要转换的类型的对象同样是不允许的.
6. 应该将不修改相应实参的形参定义为const引用.
7. 如果形参是数组的引用,编译器不会将数组实参转化为指针,而是传递数组的引用本身.
8. 定义函数的源文件应包含声明该函数的头文件,这样可使编译器能检查该函数的定义和声明是否一致.
9. 可以为一个或多个形参定义默认值,但是如果一个形参具有默认实参,那么它后门所有的形参都必须有默认实参.
10. 默认实参只能用来替换函数调用缺少的尾部实参.
11. 通常,应在函数声明中指定默认实参,并将该声明放在合适的头文件中.(如果在函数定义的形参表中提供默认实参,则
只有在包含该函数定义的源文件中调用该函数时,默认实参才有效.只能为一个形参指定默认形参一次)
12. 构造函数和泪同名,而且没有返回类型(没有返回类型,不是返回void).
13. 如果没有为一个类显式定义任何构造函数,编译器将自动为这个类生成默认构造函数,这个函数称为合成的默认构造函数.
14. 重载确定(即函数匹配)的三个步骤:
1. 确定该调用所考虑的重载函数集合,该集合称为候选函数;
2. 从候选函数中选择一个或多个函数,它们能够用该调用中指定的实参来调用,选出来的函数称为可行函数;
可行函数必须满足两个条件: a. 函数的形参个数与该调用的实参个数相同; b. 每一个实参的类型必须与对应的形参的类型
匹配,或者可被隐式转换为对应的形参类型.
3. 寻找最佳匹配.其原则是实参类型与形参类型越接近越好.