第六章 函数
6.1 函数基础
调用函数(利用实参初始化函数对应的形参,将控制权转移给被调用的函数,即主调函数的执行被暂停,被调函数开始执行)
形参和实参(尽管实参与形参存在对应关系,但实参求值的顺序是任意的)
函数的形参列表
函数返回值
6.1.1 局部对象
生命周期
局部变量
自动对象(只存在于执行期间的对象)
局部静态对象(程序第一次经过对象定义语句时初始化,程序终止时销毁)
6.1.2 函数声明
6.1.3 分离式编译
6.2 参数传递
6.2.1 传值参数
6.2.2 传引用参数(使用引用避免拷贝,如果函数无需改变引用形参的值,最好将其声明为常量引用)
6.2.3 const形参和实参
6.2.4 数组形参
因为数组是以指针的形式传递的,而为了避免越界的行为,需要传递一些额外的信息,管理指针形参有如下技术:
使用标记指定数组长度(要求数组本身包含一个结束标记,例如C风格字符串)
使用标准库规范(传递指向数组首元素和尾后元素的指针)
显示传递一个表示数组大小的形参
6.2.5 main:处理命令行选项
6.2.6 含有可变形参的函数
为了编写可以处理不同数量实参的函数,可以考虑采用两种方法:当所有实参类型相同,可以传递一个名为initializer_ist的标准库类型;如果实参类型不同,可以编写一种特殊的函数(16.4)。
6.3 返回值类型和return语句
6.3.1 无返回值函数
6.3.2 有返回值函数(不要返回局部对象的引用或指针)
6.3.3 返回数组指针
6.4 函数重载
6.5 特殊用途语言特性
6.5.1 默认实参
6.5.2 内联函数和constexpr函数
6.5.3 调试帮助
6.6 函数匹配
6.6.1 实参类型转换
6.7 函数指针
第七章 类
类的基本思想是数据抽象和封装。数据抽象是一种依赖于接口和实现分离的编程技术。封装实现了类接口和实现的分离。
7.1 定义抽象数据类型
构造函数
委托构造函数
拷贝、赋值和析构
7.2 访问控制与封装
7.2.1 友元(友元的声明仅仅指定了访问的权限,而非普通意义上的函数声明,如果需要调用友元函数,则需要再重新声明)