C++是一种高效实用的程序设计语言,它既可进行过程化程序设计,也可进行面向对象程序设计,因而成为编程人员最广泛使用的工具。学好C++,很容易触类旁通其他软件,C++架起了通向强大、易用、真正的软件开发应用的桥梁。许多高等院校已经开设了C++程序设计语言课,急需一本实用的教材。本书是作者总结两年教学实践的经验写成的,适合用作大学计算机专业和非计算机专业的程序设计基础课程教材,也可供自学的读者使用。 本书共分两大部分。第一部分,第1章至第10章是基础部分,主要介绍C++程序设计语言、程序结构和过程化基础。第二部分,第11章至第21章,是面向对象程序设计部分,它建立在C++程序设计基础之上,讲述了面向对象程序设计方法。
目录
- 第一部分C++过程化语言基础
- 第1章C++入门
- 1.1从C到C++
- 1.2程序与语言
- 1.3结构化程序设计
- 1.4面向对象程序设计
- 1.5程序开发过程
- 1.6最简单的程序
- 1.7函数
- 小结
- 第2章基本数据类型与输入输出
- 2.1字符集与保留字
- 2.2基本数据类型
- 2.3变量定义
- 2.4字面量
- 2.5常量
- 2.6I/O流控制
- 2.7printf与scanf
- 小结
- 练习
- 第3章表达式和语句
- 3.1表达式
- 3.2算术运算和赋值
- 3.3算术类型转换
- 3.4增量和减量
- 3.5关系与逻辑运算
- 3.6if语句
- 3.7条件运算符
- 3.8逗号表达式
- 3.9求值次序与副作用
- 小结
- 练习
- 第4章过程化语句
- 4.1while语句
- 4.2do...while语句
- 4.3for语句
- 4.4switch语句
- 4.5转向语句
- 4.6过程应用: 求π
- 4.7过程应用: 判明素数
- 4.8过程应用: 求积分
- 小结
- 练习
- 第5章函数
- 5.1函数概述
- 5.2函数原型
- 5.3全局变量与局部变量
- 5.4函数调用机制
- 5.5静态局部变量
- 5.6递归函数
- 5.7内联函数
- 5.8重载函数
- 5.9默认参数的函数
- 小结
- 练习
- 第6章程序结构
- 6.1外部存储类型
- 6.2静态存储类型
- 6.3作用域
- 6.4可见性
- 6.5生命期
- 6.6头文件
- 6.7多文件结构
- 6.8编译预处理
- 小结
- 练习第7章数组
- 7.1数组定义
- 7.2访问数组元素
- 7.3初始化数组
- 7.4向函数传递数组
- 7.5二维数组
- 7.6数组应用: 排序
- 7.7数组应用: Josephus问题
- 7.8数组应用: 矩阵乘法
- 小结
- 练习
- 第8章指针
- 8.1指针概念
- 8.2指针运算
- 8.3指针与数组
- 8.4堆内存分配
- 8.5const指针
- 8.6指针与函数
- 8.7字符指针
- 8.8指针数组
- 8.9命令行参数
- 8.10函数指针
- 小结
- 练习
- 第9章引用
- 9.1引用的概念
- 9.2引用的操作
- 9.3什么能被引用
- 9.4用引用传递函数参数
- 9.5返回多个值
- 9.6用引用返回值
- 9.7函数调用作为左值
- 9.8用const限定引用
- 9.9返回堆中变量的引用
- 小结
- 练习
- 第10章结构
- 10.1结构概述
- 10.2结构与指针
- 10.3结构与数组
- 10.4传递结构参数
- 10.5返回结构
- 10.6链表结构
- 10.7创建与遍历链表
- 10.8删除链表结点
- 10.9插入链表结点
- 10.10结构应用: Josephus问题
- 小结
- 练习
- 第二部分面向对象程序设计
- 第11章类
- 11.1从结构到类
- 11.2软件方法的发展必然
- 11.3定义成员函数
- 11.4调用成员函数
- 11.5保护成员
- 11.6屏蔽类的内部实现
- 11.7再论程序结构
- 小结
- 练习
- 第12章构造函数
- 12.1类与对象
- 12.2构造函数的需要性
- 12.3构造函数的使用
- 12.4析构函数
- 12.5带参数的构造函数
- 12.6重载构造函数
- 12.7默认构造函数
- 12.8类成员初始化的困惑
- 12.9构造类成员
- 12.10构造对象的顺序
- 小结
- 练习
- 第13章面向对象程序设计
- 13.1抽象
- 13.2分类
- 13.3设计和效率
- 13.4讨论Josephus问题
- 13.5结构化方法
- 13.6结构化方法的实现
- 13.7面向对象方法
- 13.8面向对象方法的实现
- 13.9程序维护
- 小结
- 练习
- 第14章堆与拷贝构造函数
- 14.1关于堆
- 14.2需要new和delete的原因
- 14.3分配堆对象
- 14.4拷贝构造函数
- 14.5默认拷贝构造函数
- 14.6浅拷贝与深拷贝
- 14.7临时对象
- 14.8无名对象
- 14.9构造函数用于类型转换
- 小结
- 练习
- 第15章静态成员与友元
- 15.1静态成员的需要性
- 15.2静态成员的使用
- 15.3静态数据成员
- 15.4静态成员函数
- 15.5需要友元的原因
- 15.6友元的使用
- 小结
- 练习
- 第16章继承
- 16.1继承的概念
- 16.2继承的工作方式
- 16.3派生类的构造
- 16.4继承与组合
- 16.5多态性
- 16.6多态的思考方式
- 16.7多态性如何工作
- 16.8不恰当的虚函数
- 16.9虚函数的限制
- 16.10类的冗余
- 16.11克服冗余带来的问题
- 16.12类的分解
- 16.13抽象类
- 16.14由抽象类派生具体类
- 16.15纯虚函数的需要性
- 小结
- 练习
- 第17章多重继承
- 17.1多继承如何工作
- 17.2继承的模糊性
- 17.3虚拟继承
- 17.4多继承的构造顺序
- 17.5继承的访问控制
- 17.6保护继承与私有继承
- 小结
- 练习
- 第18章运算符重载
- 18.1运算符重载的需要性
- 18.2如何重载运算符
- 18.3值返回与引用返回
- 18.4运算符作成员函数
- 18.5重载增量运算符
- 18.6转换运算符
- 18.7赋值运算符
- 小结
- 练习第19章I/O流
- 19.1printf和scanf的缺陷
- 19.2I/O标准流类
- 19.3文件流类
- 19.4串流类
- 19.5控制符
- 19.6使用I/O成员函数
- 19.7重载插入运算符
- 19.8插入运算符与虚函数
- 19.9文件操作
- 小结
- 练习
- 第20章模板
- 20.1模板的概念
- 20.2为什么要用模板
- 20.3函数模板
- 20.4重载模板函数
- 20.5类模板的定义
- 20.6使用类模板
- 20.7使用标准模板类库: Josephus问题
- 小结
- 练习
- 第21章异常处理
- 21.1异常的概念
- 21.2异常的基本思想
- 21.3异常的实现
- 21.4异常的规则
- 21.5多路捕捉
- 21.6异常处理机制
- 21.7使用异常的方法
- 小结
- 练习
- 参考文献