图书目录

第1篇结构化程序设计

第1章计算机基础知识

1.1信息在计算机中的表示和存储

1.1.1如何用0和 1表示各种信息

1.1.2二进制和十六进制

1.1.3整数和小数的计算机表示

1.2计算机程序设计语言

1.2.1机器语言

1.2.2汇编语言

1.2.3高级语言

*1.3C++语言的历史

1.4小结

习题

第2章C++语言的基本要素

2.1C++的标识符

2.2C++的关键字

*2.3最简单的C++程序

2.4变量

2.4.1变量的定义

2.4.2变量的初始化

2.4.3变量的赋值

2.4.4常变量

2.5C++的数据类型

2.5.1C++基本数据类型

2.5.2数据类型自动转换

2.5.3用cin读入类型不同的变量

2.6常量

2.6.1整型常量

2.6.2实数型常量

2.6.3布尔型常量

2.6.4字符型常量

2.6.5字符串常量

2.6.6符号常量

2.7运算符和表达式

2.7.1算术运算符

2.7.2赋值运算符

2.7.3关系运算符

2.7.4逻辑运算符和逻辑表达式

2.7.5位运算符

2.7.6条件运算符

2.7.7sizeof运算符

2.7.8强制类型转换运算符

2.7.9逗号运算符

2.7.10运算符的优先级和结合性

*2.8注释

2.9小结

习题

目录

第3章C++语言的控制结构

3.1用 if 语句实现选择结构

3.2用switch语句实现选择结构

3.3用for语句实现循环结构

3.4用 while 语句实现循环结构

3.5用do…while 语句实现循环结构

3.6用break语句跳出循环

3.7continue语句

3.8goto语句

3.9使用freopen方便程序调试

3.10小结

习题

第4章函数

4.1函数的定义和调用

4.1.1函数的定义

4.1.2函数调用和return语句

4.1.3函数使用实例

4.2函数的声明

4.3main函数

*4.4函数参数的默认值

*4.5引用和函数参数的传递

4.5.1引用的概念

4.5.2引用作为函数的返回值

4.5.3参数传值

4.5.4参数传引用

4.5.5常引用

*4.6内联函数

*4.7函数的重载

*4.8库函数和头文件

4.9小结

习题

第5章数组

5.1一维数组

5.2数组的大小限制

5.3二维数组

5.4数组的初始化

5.5数组作为函数的参数

5.6数组越界

5.6.1什么是数组越界

5.6.2数组越界的后果

5.7小结

习题

第6章字符串

6.1字符串常量

6.2用字符数组存放的字符串

6.2.1用一维数组存放字符串

6.2.2用二维数组存放字符串

6.3字符串函数用法示例

*6.4用string 对象处理字符串

6.4.1定义string对象

6.4.2string对象的输入输出

6.4.3string对象的赋值

6.4.4string对象的运算

6.4.5string对象用法示例

6.5小结

习题

第7章指针

7.1指针的基本概念

7.2指针的作用

7.3指针的互相赋值

7.4指针运算

7.5空指针

7.6指针作为函数参数

7.7指针和数组

7.8常量指针

7.9字符串和指针

7.9.1普通字符串和指针的关系

7.9.2string对象和char * 指针的关系

7.9.3字符串操作库函数

7.10void 指针和内存操作库函数

7.11函数指针

7.11.1函数指针的定义

7.11.2函数指针的应用

7.12指针和动态内存分配

7.13指向指针的指针

7.14指针数组

7.15误用无效指针

7.16小结

习题

第8章自定义数据类型

8.1结构

8.1.1结构的定义和使用

8.1.2访问结构变量的成员变量

8.1.3结构变量的初始化

8.1.4结构数组

8.1.5指向结构变量的指针

8.1.6动态分配结构变量和结构数组

8.1.7结构变量或引用作为函数形参

8.2联合

8.3枚举类型

8.4用typedef定义类型

8.5小结

习题

第9章程序设计的基本思想

9.1枚举

9.2递归

9.3二分

9.4算法的时间复杂度及其表示法

9.5小结

习题

第10章C++程序结构

10.1全局变量和局部变量

10.2静态变量、自动变量和寄存器变量

10.3标识符的作用域

10.4变量的生存期

10.5预编译

10.5.1宏定义

10.5.2文件包含

10.5.3条件编译

10.6命令行参数

10.7多文件编程

10.7.1C++程序的编译过程

10.7.2多文件共享全局变量

10.7.3静态全局变量和静态全局函数

10.7.4多文件编程中的内联函数

10.7.5用条件编译避免头文件的重复包含

10.8小结

习题

第2篇面向对象的程序设计

第11章类和对象初步

11.1结构化程序设计的不足

11.2面向对象程序设计的概念和特点

11.3类的定义和使用

11.4类的示例程序剖析

11.5访问对象的成员

11.6类成员的可访问范围

11.7内联成员函数

11.8小结

习题

第12章类和对象进阶

12.1构造函数

12.1.1构造函数的概念和作用

12.1.2构造函数在数组中的使用

12.1.3复制构造函数

12.1.4类型转换构造函数

12.2析构函数

12.3构造函数、析构函数和变量的生存期

12.4静态成员变量和静态成员函数

12.5常量对象和常量成员函数

12.6成员对象和封闭类

12.7const成员和引用成员

12.8友元

12.8.1友元函数

12.8.2友元类

12.9this指针

12.9.1C++程序到C程序的翻译

12.9.2this指针的作用

12.10在多个文件中使用类

12.11小结

习题

第13章运算符重载

13.1运算符重载的概念和原理

13.2重载赋值运算符“=”

13.3浅复制和深复制

13.4运算符重载为友元函数

13.5实例——长度可变的整型数组类

13.6重载流插入运算符和流提取运算符

13.7重载强制类型转换运算符

13.8重载自增、自减运算符

13.9运算符重载的注意事项

13.10小结

习题

第14章继承与派生

14.1继承和派生的概念

14.2正确处理类的复合关系和继承关系

14.3protected访问范围说明符

14.4派生类的构造函数和析构函数

14.5多层次的派生

14.6包含成员对象的派生类

14.7公有派生的赋值兼容规则

14.8基类与派生类的指针的互相转换

14.9私有派生和保护派生

14.10派生类和赋值运算符“=”

14.11多重继承

14.11.1多继承的概念及其引发的二义性

14.11.2用“虚继承”解决二义性

14.12小结

习题

第15章多态与虚函数

15.1多态的基本概念

15.2多态的作用

15.3多态的实现原理

15.4关于多态的注意事项

15.5虚析构函数

15.6纯虚函数和抽象类

15.7小结

习题

第16章输入输出流

16.1流类

16.2标准流对象

16.3使用流操纵算子控制输出格式

16.4调用cout的成员函数

16.5cin的高级用法

16.5.1判断输入结束

16.5.2istream类的成员函数

16.6printf、scanf等C语言标准输入输出库函数

16.7小结

习题

第17章文件操作

17.1文件的概念

17.2C++文件流类

17.3文件的打开和关闭

17.4文件的读写

17.4.1文本文件的读写

17.4.2二进制文件的读写

17.4.3操作文件读写指针

17.5文本方式打开文件与二进制方式打开文件的区别

17.6小结

习题

第3篇泛型程序设计

第18章泛型程序设计与模板

18.1函数模板

18.2类模板

18.3类模板中的非类型参数

18.4类模板与继承

18.5类模板和友元

18.6类模板中的静态成员

18.7在多个文件中使用模板

18.8小结

习题

第19章标准模板库STL

19.1STL中的基本概念

19.1.1容器

19.1.2迭代器

19.1.3算法

19.1.4STL中的“大”、“小”和“相等”的概念

19.2顺序容器

19.2.1动态数组 vector

19.2.2双向链表list

19.2.3双向队列deque

19.3函数对象

19.4关联容器

19.4.1关联容器的预备知识: pair类模板

19.4.2multiset

19.4.3set

19.4.4multimap

19.4.5map

19.5容器适配器

19.5.1stack

19.5.2queue

19.5.3priority_queue

19.6STL算法分类

19.7不变序列算法

19.8变值算法

19.9删除算法

19.10变序算法

19.11排序算法

19.12有序区间算法

19.13string类详解

19.14bitset

19.15小结

习题

第4篇C++高级主题

第20章C++高级主题

20.1强制类型转换

20.2运行时类型检查

20.3智能指针auto_ptr

20.4C++异常处理

20.5名字空间

20.6C++11新特性管窥

20.6.1智能指针shared_ptr

20.6.2无序容器(哈希表)

20.6.3正则表达式

20.6.4Lambda表达式

20.7小结

习题

附录A魔兽世界大作业

参考文献