6.1函数基础
- 局部静态对象static类型,使局部变量的生命周期贯穿函数调用及之后的时间;、
6.2参数传递
- 当形参是引用类型时,对应的实参被引用传递;实参的值被拷贝给形参时,形参实参是两个相互独立的对象,为值传递;在C++语言中也鼓励多使用引用代替指针访问函数外部的对象。
- 使用引用可以避免拷贝,还可以返回一个以上的结果;
- 顶层的const作用于对象本身,形参的顶层const会被忽略掉; 而对于引用而言,尽量使用常量引用形参,这样可以接受普通实参,const实参,字面值等;
- 管理数组形参(指针形参)的三种常用技术: 使用结束标记,使用标准库规范,显示传递一个表示数组大小的形参;且在函数不需要对数组元素进行写操作时,数组形参应指向const的指针;
- 为处理不同数量实参的函数,若实参类型相同,可以传递一个标准库类型initializer_list,若实参类型不同,可以编写可变参数模板;
6.3 返回类型和return语句
6.4 函数重载
- 不允许两个函数除了返回类型外其他所有的要素都相同;
- 顶层const不影响传入函数的对象,不能只用const去区分重载函数;
6.5 特殊语言特性
- 内联函数inline用于优化规模较小,流程直接,频繁调用的函数;
- constexpr
- assert
- NDEBUG