《C++面向对象程式设计教程(第4版)》是由陈维兴、林小茶编着,2018年清华大学出版社出版的普通高等教育“十一五”国家级规划教材、北京高等教育精品教材。该教材适合作为高等院校各专业学生学习C++的基础教材,也适合初学者自学使用。
该教材是为具有C语言基础的读者编写的,主要介绍C++面向对象程式设计的基本知识和编程方法,全面讲述了C++面向对象的基本特徵。
基本介绍
- 书名C++面向对象程式设计教程(第4版)
- 作者陈维兴、林小茶
- ISBN9787302503712
- 类别普通高等教育“十一五”国家级规划教材、北京高等教育精品教材
- 页数362页
- 出版社清华大学出版社
- 出版时间2018年10月1日
- 装帧平装
- 开本16开
- 字数575千字
- CIP核字号2018118076
成书过程
修订情况
该教材在第3版的基础上,在以下几个方面进行了修订
- 该教材中所有程式重新在VisualC++2010中调试通过,对于仍在使用VisualC++6.0作为调试环境的读者,大部分程式都能运行,而有些程式的第一行必须改为“#include<iostream.h>”程式才能通过调试,书中有相应的提示;
- 增加了“STL标準模板库”一章,对于有一定程式设计基础的读者来说,掌握这部分内容可以提高编程效率,因为标準模板库中提供了对常用数据结构的操作,如表、栈和伫列等;
- 删掉了一些不是十分必要的内容和案例,增加了一些新的、更实用的案例和内容。
出版工作
2018年10月1日,该教材由清华大学出版社出版。
责任编辑 | 封面设计 | 责任校对 | 责任印製 |
---|---|---|---|
柳萍 | 何凤霞 | 王淑云 | 丛怀宇 |
内容简介
该教材主要内容包括类、对象、继承、派生类、多态性、虚函式、运算符重载、模板、输入和输出流类库、异常处理和命名空间、STL标準模板库和面向对象程式设计方法与实例等。该教材在第3版教材的基础上将全部程式在Visual C++ 2010调试环境下重新进行了调试,除了个别的程式,大部分程式可以在Visual C++ 6.0和Visual C++ 2010调试成功。
教材目录
第1章面向对象程式设计概述11.1什幺是面向对象程式设计1 1.1.1一种新的程式设计范型1 1.1.2面向对象程式设计的基本概念2 1.1.3面向对象程式设计的基本特徵4 1.2为什幺要使用面向对象程式设计8 1.2.1传统程式设计方法的局限性8 1.2.2面向对象程式设计方法的主要优点9 1.3面向对象程式设计的语言11 1.3.1面向对象程式设计语言的发展概况11 1.3.2几种典型的面向对象程式设计语言12 习题13 第2章C++概述14 2.1C++的起源和特点14 2.1.1C++的起源14 2.1.2C++语言的特点15 2.2C++源程式的构成15 2.2.1简单的C++程式15 2.2.2C++程式的结构特性17 2.2.3C++程式的编辑、编译、连线和运行18 2.3C++在非面向对象方面的扩充18 2.3.1注释行19 2.3.2C++的输入输出19 2.3.3灵活的局部变数说明21 2.3.4结构名、联合名和枚举名可直接作为类型名22 2.3.5const修饰符22 2.3.6函式原型25 2.3.7内联函式27 2.3.8带有默认参数的函式30 2.3.9函式的重载31 2.3.10作用域运算符“∷”33 2.3.11无名联合34 2.3.12强制类型转换35 2.3.13运算符new和delete35 2.3.14引用38 习题44 第3章类和对象48 3.1类与对象的基本概念48 3.1.1结构体与类48 3.1.2成员函式的定义53 3.1.3对象的定义及使用56 3.1.4类的作用域和类成员的访问属性59 3.2构造函式与析构函式60 3.2.1对象的初始化和构造函式60 3.2.2用成员初始化列表对数据成员初始化65 3.2.3构造函式的重载67 3.2.4带默认参数的构造函式71 3.2.5析构函式72 3.3对象数组与对象指针75 3.3.1对象数组75 3.3.2对象指针78 3.3.3this指针80 3.4string类83 3.5向函式传递对象85 3.5.1使用对象作为函式参数85 3.5.2使用对象指针作为函式参数86 3.5.3使用对象引用作为函式参数87 3.6对象的赋值和複製88 3.6.1对象赋值语句88 3.6.2拷贝构造函式89 3.7静态成员96 3.7.1静态数据成员96 3.7.2静态成员函式101 3.8友元105 3.8.1友元函式105 3.8.2友元类110 3.9类的组合112 3.10常类型117 3.10.1常引用117 3.10.2常对象118 3.10.3常对象成员119 习题122 第4章派生类与继承135 4.1派生类的概念135 4.1.1为什幺要使用继承135 4.1.2派生类的声明137 4.1.3派生类的构成138 4.1.4基类成员在派生类中的访问属性139 4.1.5派生类对基类成员的访问规则140 4.2派生类的构造函式和析构函式148 4.2.1派生类构造函式和析构函式的执行顺序149 4.2.2派生类构造函式和析构函式的构造规则150 | 4.3调整基类成员在派生类中的访问属性的其他方法157 4.3.1同名成员157 4.3.2访问声明159 4.4多重继承163 4.4.1多重继承派生类的声明163 4.4.2多重继承派生类的构造函式与析构函式165 4.4.3虚基类169 4.5基类与派生类对象之间的赋值兼容关係178 4.6套用举例181 习题187 第5章多态性197 5.1编译时的多态性与运行时的多态性197 5.2运算符重载198 5.2.1在类外定义的运算符重载函式198 5.2.2友元运算符重载函式202 5.2.3成员运算符重载函式208 5.2.4成员运算符重载函式与友元运算符重载函式的比较213 5.2.5“++”和“--”的重载215 5.2.6赋值运算符“=”的重载220 5.2.7下标运算符“\[\]”的重载224 5.3类型转换226 5.3.1系统预定义类型间的转换226 5.3.2类类型与系统预定义类型间的转换227 5.4虚函式234 5.4.1虚函式的引入235 5.4.2虚函式的定义238 5.4.3纯虚函式和抽象类248 5.5套用举例249 习题254 第6章模板与异常处理259 6.1模板的概念259 6.2函式模板与模板函式259 6.3类模板与模板类265 6.4异常处理272 6.4.1异常处理概述272 6.4.2异常处理的方法273 6.5套用举例277 习题282 第7章C++的流类库与输入输出285 7.1C++为何建立自己的输入输出系统285 7.2C++流的概述286 7.2.1C++的输入输出流286 7.2.2预定义的流对象288 7.2.3输入输出流的成员函式288 7.3预定义类型的输入输出291 7.3.1插入运算符与提取运算符291 7.3.2输入输出的格式控制293 7.4用户自定义类型的输入输出301 7.4.1重载插入运算符301 7.4.2重载提取运算符303 7.5档案的输入输出304 7.5.1档案的打开与关闭305 7.5.2档案的读写308 7.6命名空间和头档案命名规则316 7.6.1命名空间316 7.6.2头档案命名规则318 7.7套用举例319 习题322 第8章STL标準模板库325 8.1容器、算法和叠代器的基本概念325 8.2容器326 8.2.1vector容器326 8.2.2list容器333 8.2.3容器适配器338 8.2.4deque容器342 8.2.5set、multiset、map和multimap容器344 本章小结345 习题346 第9章面向对象程式设计方法与实例349 9.1面向对象程式设计的一般方法和技巧349 9.1.1问题分析和功能定义350 9.1.2对象(类)设计及实现350 9.1.3核心控制设计352 9.1.4编码与测试352 9.1.5进化352 9.2设计实例模拟网上购书的结账功能353 9.2.1问题分析与功能定义353 9.2.2对象(类)设计353 9.2.3核心控制设计355 9.2.4编码与测试356 习题361 参考文献362 |
(注目录排版顺序为从左列至右列)
教学资源
该教材配有辅助教材《C++面向对象程式设计教程(第4版)习题解答与上机指导》。
书名 | 书号 | 出版社 | 作者 |
---|---|---|---|
《C++面向对象程式设计教程(第4版)习题解答与上机指导》 | 9787302503705 | 清华大学出版社 | 陈维兴、林小茶、陈昕 |
教材特色
该教材在编写时力求做到内容全面、语言通俗、例题丰富,针对初学者的特点,通过例子,以通俗易懂的语言讲解複杂的概念和方法。
该教材是根据教学需要编写的,希望最大限度地做到定位準确、取材合适、深度适宜;在取材方面,捨去了C语言中的内容,只讲C++面向对象程式设计部分的内容。
作者简介
陈维兴,男,1981年生,天津人,中国民航大学电子信息与自动化学院副教授。主要教授本科和研究生嵌入式开发、智慧型仪器、工业网路、物联网等方面课程。研究方向为工业智慧型设备、群体智慧型感知技术与系统、智慧机场等。
林小茶,女,1962年生,北京信息科技大学信息管理学院副教授,主要研究方向为信息安全。