第十八章 指针和数组的深入讨论 1
18.1 数组名和指针 1
18.2 指针的优越性 2
18.3 地址运算 3
18.4 使用字符指针 7
18.5 字符型指针数组 9
18.6 指针的指针 11
18.7 指向函数的指针 12
18.8 小结 14
练习十八 14
第十九章 结构 16
19.1 结构定义 16
19.2 结构的成员、初始化和嵌套 18
19.3 向函数传递结构 21
19.4 位域 25
19.5 联合 28
19.6 枚举 30
19.7 用sizeof增强可移植性 31
19.8 小结 31
练习十九 32
第二十章 结构数组 33
20.1 声明结构数组 33
20.2 引用结构数组的元素 34
20.3 把数据输入到结构数组中 35
20.4 小结 40
练习二十 40
21.1 定义一个类 41
第二十一章 类和对象 41
21.2 结构类和联合类 43
21.3 友元函数及其应用 46
21.4 C++的内联函数 50
21.5 成员函数与内联函数 51
21.6 构造函数和析构函数 52
21.6.1 构造函数 53
21.6.2 析构函数 53
21.7 类的静态成员及其作用 54
21.7.1 静态成员变量 54
21.7.2 静态成员函数 55
21.7.3 静态成员的应用 56
21.9 作用域分辨操作符 58
21.8 创建类的对象 58
21.10 向函数传递和返回对象 59
21.11 对象赋值 61
21.12 小结 61
练习二十一 61
第二十二章 继承性 63
22.1 派生类 63
22.1.1 基类访问控制 63
22.1.2 继承基类的protected成员 65
22.1.3 继承与友元(friend) 67
22.2 授权访问 69
22.3 虚基类 72
练习二十二 75
22.4 小结 75
第二十三章 构造函数和析构函数 77
23.1 构造函数 77
23.2 带有参数的构造函数 78
23.3 析构函数 82
23.4 构造函数、析构函数执行的时机和顺序 83
23.5 构造函数、析构函数和继承 84
23.5.1 派生类构造函数和析构函数的执行顺序 84
23.5.2 如何向基类构造函数传递参数 86
23.6 关于拷贝构造函数 89
23.7 小结 91
练习二十三 91
24.1 指向对象的指针 92
第二十四章 指针和引用 92
24.2 this指针 95
24.3 用基类型指针指向派生类型对象 97
24.4 指向类成员的指针 100
24.5 引用 103
24.5.1 直接引用 103
24.5.2 函数引用参数 104
24.5.3 函数引用对象 105
24.5.4 函数返回引用 107
24.5.5 应注意的几个问题 108
24.6 动态分配符new和delete 108
24.6.1 为某类型变量动态分配内存 109
24.6.2 为某类对象动态分配内存 111
练习二十四 115
24.7 小结 115
第二十五章 重载 117
25.1 函数重载及其意义 117
25.2 重载构造函数 120
25.3 函数重载及可能出现的二义性 121
25.4 重载函数与指向函数的指针 123
25.5 重载操作符 124
25.6 operator函数为成员函数 125
25.7 operator函数为友元函数 130
25.8 friend operator函数的特性及重载 132
25.9 重载new和delete 134
25.10 重载几个特殊操作符 138
25.10.1 重载函数调用操作符() 138
25.10.2 重载数组下标操作符[] 140
25.10.3 重载操作符—> 142
25.11 类型转换和转换函数 143
25.12 小结 145
练习二十五 146
第二十六章 虚函数和多态性 147
26.1 什么是虚函数 147
26.2 虚函数与继承 151
26.3 纯虚函数和抽象类 155
26.4 虚函数和抽象类的应用 157
26.5 早期联编和滞后联编(后期联编) 159
26.6 小结 159
练习二十六 160