第1课编程逻辑和技术 1
引入框图 3
I-P-O周期 3
使用框图表示程序流程 3
变量、常量和内存 7
循环迭代和条件判定 9
预检和预检表 9
循环迭代 9
条件判定 12
理解编程的模块化方法 15
养成一个好的习惯 20
小结 24
独立实践 25
第2课编辑和编译C++程序 26
计算机语言的代 28
C和C++语言概述 28
C和C++语言的发展历史 29
C和C++语言的特点 30
编写“我的第1个C++程序” 32
编写C++程序 32
保存C++程序 33
C++程序的成分 33
使用名字空间std 42
程序的编译、链接和执行 46
Linux平台下的GNU编译器 47
Quincy 99集成开发环境编译器 47
Microsoft Visual C++编译器 48
使用模块化编程方法 55
使用C结构化编程方法 57
使用C++面向对象编程方法 59
小结 61
独立实践 62
第3课常量、变量和指针 63
数据类型概述 64
数据类型的分类 64
常量、变量和内存 65
基本数据类型 70
布尔型(bool) 70
字符型(char) 71
ASCII字符集 73
整型(int) 75
浮点型(float) 76
数据大小与sizeof运算符 77
数据类型转换 78
指针变量 81
指针基础 81
定义指针变量 83
引用指针变量&和 84
类型修饰符 87
Const类型修饰符 87
Volatile类型修饰符 87
小结 88
独立实践 89
第4课运算符、优先级和结合律 90
基本概念 92
基本运算符 93
算术运算符 93
算术赋值运算符 95
一元增量、减量运算符 96
比较运算符 97
逻辑运算符 98
条件运算符 100
逗号运算符 101
优先级与结合律 102
小结 106
独立实践 107
第5课函数、函数指针和指针函数 108
定义函数和调用函数 110
变量的作用域 113
块作用域 115
函数作用域 115
全局作用域 115
带参数的函数 117
形参和实参 117
调用函数 120
声明函数原型 121
直接调用(也叫传值调用) 123
函数调用方式 123
使用别名的引用调用 125
用指针的引用调用 130
new和delete运算符 133
变量的存储类型 137
静态存储和动态存储 137
函数指针 140
指针函数 142
小结 143
独立实践 144
第6课面向对象的编程方法:类 145
C++中的类 146
声明类 146
作用域分解运算符(::) 147
访问成员变量和成员函数 150
创建类对象 150
类对象访问符(.) 151
类指针访问符(_>) 154
类的访问区分符 159
抽象和封装 159
使用访问区分符实现抽象和封装 160
静态变量和静态函数 165
静态变量 165
静态函数 167
类作用域、友元函数和友元类 169
类作用域 169
友元函数 170
友元类 171
小结 173
独立实践 174
第7课成员函数、构造符和析构符 176
构造符函数的需要 177
声明构造符函数 178
成员方式初始化 180
析构符函数 182
对象的作用域和生命周期 184
带参数的构造符 186
初始化值来自键盘 186
初始化值来自实参 187
带参数默认值的构造符 188
小结 190
独立实践 191
第8课条件判定、循环和跳转 192
条件构造 193
if…else构造 193
switch…case构造 201
循环构造 205
while循环 205
do…while循环 207
break和continue语句 208
for循环构造 212
跳转构造 218
goto语句的错误用法 218
goto语句错误的改正 219
小结 221
独立实践 222
第9课数组、数组指针和指针数组 224
一维int数组 225
int数组和数组指针 229
串_一维char数组 230
字符串和数组指针 231
构造字符串 232
给字符串对象赋值 232
string字符串对象 232
字符串的连接 233
字符串的下标 233
字符串的子串 233
字符串的比较 234
指针数组和指针的指针 235
指针数组 235
指针的指针 235
二维数组 237
三维数组 242
小结 244
独立实践 245
第10课静态多态:构造符重载和运算符重载 246
静态多态性 247
函数重载 248
成员函数重载 248
构造符重载 251
运算符重载 254
运算符重载的需要 254
一元运算符重载 255
简单的前缀一元运算符 255
事前和事后的增量和减量运算符 259
重载二元运算符 262
简单运算符 262
加号运算符重载 263
大于(>)运算符重载 272
this指针 275
小结 276
独立实践 277
第11课类的关系:类的包含和类的继承 278
识别类之间的关系 279
继承关系 280
组合关系 281
利用关系 282
实例化关系 282
类和继承性 283
继承性 283
调用构造符和析构符的顺序 285
基类初始化 287
派生的访问区分符 289
小结 292
独立实践 293
第12课 动态多态:滞后联编和函数重载 295
实现滞后联编 296
联编的概念 296
用虚函数实现滞后联编 297
静态多态性与动态多态性的比较 302
小结 312
独立实践 313
第13课多重继承、歧义性和虚基类 314
多重继承性 315
多重继承中访问区分符 317
多重继承中的歧义性 318
虚基类 322
调用构造符和析构符 324
小结 328
独立实践 329
第14课文件的输出和输入 331
流类层次结构 332
流的插入和抽取 334
流的插入 334
流的抽取 335
使用内部数据类型的文件输出和输入 339
文件输出和输入 339
使用对象的文件输出和输入 342
二进制输出和输入 344
文件的打开和关闭 349
open()函数 349
close()函数 349
打开方式位 353
文件指针 354
查询文件 355
修改文件的内容 355
小结 356
独立实践 357
第15课类指针、单链表和双链表 358
链表 359
链表的类型 359
链表的应用 361
链表的操作 361
单链表 362
INFO在节点中的表示 362
Node类的表示 365
List类的表示 366
链表中插入节点 369
作为新链表的第1个节点 369
在表的开始处插入节点 370
在表的中间插入节点 371
在表的尾部插入节点 372
修改链表 374
遍历链表 375
查询信息 376
删除节点 377
链表排序 379
链表操作 380
小结 384
独立实践 385
第16课用链表实现栈和队列 386
栈 387
栈操作 388
用链表实现栈 389
队列 394
队列类型 394
队列操作 396
用链表实现队列 397
小结 402
独立实践 403
附录 404
附录A ASCII字符集 404
附录B运算符优先级 408
附录CC++的关键字 410