《普通高等教育"十一五"国家级规划教材·中国高等院校计算机基础教育课程体系规划教材:C++面向对象程序设计》作者谭浩强深入调查了我国大学的程序设计课程的现状和发展趋势,参阅了国内外数十种C++的教材,认真分析了学习者在学习过程中遇到的困难,研究了初学者的认识规律,做到准确定位,合理取舍内容,设计了读者易于学习的教材体系,并且以通俗易懂的语言化解了许多复杂的概念,大大减少了初学者学习C++的困难
本书是为具有C语言基础的读者编写的,主要介绍C++面向对象程序设计的基本知识和编程方法,全面讲述了C++面向对象的基本特征。内容包括类、对象、继承、派生类、多态性、虚函数、运算符重载、模板、输入和输出流类库、异常处理和命名空间、面向对象程序设计方法与实例等。
本书注重基本概念,从实际应用出发,突击重点,浅入深出,叙述清楚,叙述详尽。针对初学者的特点,力求通过大量的例题,以通俗易懂的语言讲解复杂的概念和方法,以期帮助读者尽快迈入面向对象程序设计的大门。
为了帮读者进一步理解和掌握所学知识,同时出版了与本书配套的辅助教材《C++面向对象程序设计习题解答与上机指导(第二版)》 。
本书内容全面、语言通俗、例题丰富,同时配有大量习题,适合作为高等院校各专业学生学习C++的基本教材,也适合初学者自学使用 。
目录
- 第1章 面向对象程序设计概述
- 1.1 面向对象程序设计
- 1.1.1 什么是面向对象程序设计
- 1.1.2 面向对象程序设计的基本概念
- 1.1.3 面向对象程序设计的基本特征
- 1.2 为什么要使用面向对象程序设计
- 1.2.1 面向过程程序的局限性
- 1.2.2 面向对象程序设计的主要优点
- 1.3 面向对象程序设计的程序
- 1.3.1 面向对象程序设计语言的发展概况
- 1.3.2 几种典型的面向对象程序设计语言
- 本章小结
- 习题
- 第2章 C++基础
- 2.1 C++的产生和特点
- 2.1.1 C++的产生
- 2.1.2 C++的特点
- 2.2 C++程序的结构特性
- 2.2.1 一个简单的C++示例程序
- 2.2.2 C++程序的结构特性
- 2.3 C++程序的编辑、编译、连接和运行
- 2.4 C++在非面向对象方面对C的扩充
- 2.4.1 注释行
- 2.4.2 C++的输入和输出
- 2.4.3 灵活的变量声明
- 2.4.4 结构、联合和枚举名
- 2.4.5 函数原型
- 2.4.6 const修饰符
- 2.4.7 void型指针
- 2.4.8 内联函数
- 2.4.9 带有默认参数值的函数
- 2.4.10 函数重载
- 2.4.11 作用域标识符
- 2.4.12 强制类型转换
- 2.4.13 new和delete
- 2.4.14 引用
- 本章小结
- 习题
- 第3章 类和对象(一)
- 3.1 类的构成
- 3.1.1 从结构体到类
- 3.1.2 类的构成
- 3.2 成员函数的定义
- 3.2.1 普通成员函数的定义
- 3.2.2 内联成员函数的定义
- 3.3 对象的定义和使用
- 3.3.1 类与对象的关系
- 3.3.2 对象的定义
- 3.3.3 对象中成员的访问
- 3.3.4 类的作用域和类成员的访问属性
- 3.3.5 对象赋值语句
- 3.4 构造函数与析构函数
- 3.4.1 构造函数
- 3.4.2 成员初始化列表
- 3.4.3 带默认参数的构造函数
- 3.4.4 析构函数
- 3.4.5 默认的构造函数和默认的析构函数
- 3.4.6 构造函数的重载
- 3.4.7 拷贝构造函数
- * 3.4.8 浅拷贝和深拷贝
- 本章小结
- 习题
- 第4章 类和对象(二)
- 4.1 自引用指针this
- 4.2 对象数组与对象指针
- 4.2.1 对象数组
- 4.2.2 对象指针
- 4.2.3 string类
- 4.3 向函数传递对象
- 4.3.1 使用对象作为函数参数
- 4.3.2 使用对象指针作为函数参数
- 4.3.3 使用对象引用作为函数参数
- 4.4 静态成员
- 4.4.1 静态数据成员
- 4.4.2 静态成员函数
- 4.5 友元
- 4.5.1 友元函数
- 4.5.2 友元类
- 4.6 类的组合
- *4.7 共享数据的保护
- 4.7.1 常引用
- 4.7.2 常对象
- 4.7.3 常对象成员
- *4.8 C++程序的多文件组成
- 4.9 程序举例
- 本章小结
- 习题
- 第5章 继承与派生
- 5.1 继承与派生的概念
- 5.1.1 为什么要使用继承
- 5.1.2 派生类的声明
- 5.1.3 基类成员在派生类中的访问属性
- 5.1.4 派生类对基类成员的访问规则
- 5.2 派生类的构造函数和析构函数
- 5.2.1 派生类构造函数和析构函数的调用顺序
- 5.2.2 派生类构造函数和析构函数的构造规则
- *5.3 调整基类成员在派生类中的访问属性的其他方法
- 5.3.1 同名成员
- 5.3.2 访问声明
- 5.4 多继承与虚基类
- 5.4.1 声明多继承派生类的方法
- 5.4.2 多继承派生类的构造函数与析构函数
- 5.4.3 虚基类
- *5.5 赋值兼容规则
- 5.6 程序举例
- 本章小结
- 习题
- 第6章 多态性与虚函数
- 6.1 多态性概述
- 6.2 虚函数
- 6.2.1 虚函数的引入
- 6.2.2 虚函数的作用和定义
- *6.2.3 虚析构函数
- 6.2.4 虚函数与重载函数的关系
- 6.2.5 多继承与虚函数
- 6.3 纯虚函数和抽象类
- 6.3.1 纯虚函数
- 6.3.2 抽象类
- 6.4 程序举例
- 本章小结
- 习题
- 第7章 运算符重载
- 7.1 运算符重载概述
- 7.2 运算符函数重载为类的友元函数和成员函数
- 7.2.1 友元运算符重载函数
- 7.2.2 成员运算符重载函数
- 7.2.3 运算符重载应该注意的几个问题
- 7.3 几个常用运算符的重载
- 7.3.1 单目运算符“++”和“--”的重载
- 7.3.2 赋值运算符“=”的重载
- *7.3.3 下标运算符“[]”的重载
- *7.3.4 函数调用运算符“()”的重载
- 7.4 重载插入运算符和提取运算符
- 7.4.1 重载插入运算符“<<”
- 7.4.2 重载插入运算符“>>”
- 7.5 类型转换
- 7.5.1 标准类型间的转换
- *7.5.2 类类型与标准类型间的转换
- 7.6 程序举例
- 本章小结
- 习题
- 第8章 函数模板与类模板
- 8.1 模板的概念
- 8.2 函数模板
- 8.2.1 函数模板的声明
- 8.2.2 函数模板的使用
- 8.3 类模板
- 8.4 程序举例
- 本章小结
- 习题
- 第9章 C++的输入和输出
- 9.1 C++为何建立自己的输入输出系统
- 9.2 C++的流库及其基本结构
- 9.2.1 C++的流
- 9.2.2 预定义的流对象
- 9.2.3 输入输出流的成员函数
- 9.3 预定义类型输入输出的格式控制
- 9.3.1 用流成员函数进行输入输出格式控制
- 9.3.2 使用预定义的操纵符进行输入输出格式控制
- 9.3.3 使用用户自定义的操纵符进行输入输出格式控制
- 9.4 文件的输入输出
- 9.4.1 文件的概述
- 9.4.2 文件的打开与关闭
- 9.4.3 文本文件的读写
- 9.4.4 二进制文件的读写
- 9.5 程序举例
- 本章小结
- 习题
- 第10章 异常处理和命名空间
- 10.1 异常处理
- 10.1.1 异常处理概述
- 10.1.2 异常处理的方法
- 10.2 命名空间和头文件命名规则
- 10.2.1 命名空间
- 10.2.2 头文件命名规则
- 本章小结
- 习题
- *第11章 面向对象程序设计方法与实例
- 11.1 面向对象程序设计的一般方法与技巧
- 11.2 设计实例
- 11.2.1 举例:模拟网上购书的结账功能
- 11.2.2 举例:模拟ATM机为用户提供服务
- 本章小结
- 习题
- 附录A 上级实验题
- 参考文献