
编辑推荐
《普通高等教育"十三五"规划教材:标准C++程序设计(第2版)》的每章开始以精炼的语言扼要说明其主要内容,难点被适当地分解在各章里。部分重点章节安排了若干有实际背景的设计案例。每章最后配备了若干思考题和相当数量的习题。思考题有助于理解语言的语法现象,值得认真对照教材去分析,或者构造适当的例子去实验,而通过完成这些习题,有助于对知识点的透彻掌握。为了帮助学习者顺利进行编程实践,书后以附录形式对C++Builder6.0、DEVC++和VisualC++6.0这几种环境的编程甚至程序调试方法都给出了适度介绍。
作者简介
牛连强,男,沈阳工业大学软件学院院长、教授二十余年来,长期从事高等学校计算机领域的教学和科研工作,教学经验丰富、科研项目成果丰富,并出版了多部教材和专著,发表论文40余篇。
目录
第1章C++语言与面向对象程序设计概述
1.1C++语言概述
1.1.1标准C++语言的产生与发展
1.1.2编写简单的C++语言程序
1.2由过程化到面向对象程序设计
1.2.1过程化程序设计
1.2.2面向对象的程序设计
1.3面向对象程序的主要特征
1.3.1抽象与封装
1.3.2由继承实现重用
1.3.3由多态反映变革
1.4面向对象的问题分析
1.4.1确定类
1.4.2确定类的属性
1.4.3确定类的方法
1.4.4确定对象模式
思考与练习1
实验1
第2章C++语言基础
2.1标识符与关键字
2.1.1标识符
2.1.2关键字
2.2数据与数据类型
2.2.1基本数据类型
2.2.3字面值
2.2.4符号常量
2.2.5变量
2.3基本运算
2.3.1运算符和表达式
2.3.2数据类型转换与造型
2.4语句与流程控制
2.4.1简单语句与复合语句
2.4.2分支语句
2.4.3循环语句
2.4.4流程转向语句
2.4.5数据输入与输出
2.5指针、数组与引用
2.5.1指针
2.5.2数组
2.5.3引用
2.6函数
2.6.1函数的定义与声明
2.6.2函数调用与参数匹配
2.6.3函数返回值与函数调用表达式
2.6.4形式参数的默认值
2.6.5内联函数
2.6.6函数重载
2.6.7函数模板
2.7new、delete与动态对象
2.7.1动态生成和销毁一个对象
2.7.2动态生成和销毁对象数组
2.8名字空间
2.8.1名字冲突及对策
2.8.2定义和使用名字空间
2.9预处理指令
2.9.1宏定义
2.9.2条件编译
2.9.3文件包含
思考与练习2
实验2
第3章类、对象与封装
3.1类
3.1.1类的含义与表述
3.1.2类定义的语法规则
3.2对象
3.2.1对象定义
3.2.2成员访问
3.2.3对象存储
3.3类的方法
3.3.1为类提供必要的方法
3.3.2inline方法
3.3.3const方法
3.3.4隐含的this指针
3.3.5方法重载与缺省参数
3.3.6类的模板函数方法
3.4构造与析构
3.4.1初始化的难题
3.4.2构造函数与对象初始化
3.4.3无名对象
3.4.4对象数组与动态对象
3.4.5初始化列表与特殊成员的初始化
3.4.6共用体类与位域类
3.4.7析构函数与对象拆除
3.5拷贝构造与对象拆除
3.5.1拷贝构建新对象
3.5.2改变缺省的拷贝行为
3.5.3拷贝构造器的实现
3.5.4用自己定义的析构器拆除对象
3.6字符串类string
3.6.1string类的属性与对象构造
3.6.2string类支持的主要运算
3.6.3string类的主要方法
3.7案例一:设计一个栈类
3.8案例二:公司员工类的设计(一)
思考与练习3
实验3
第4章类的静态成员、友元与指针访问
4.1静态成员
4.1.1静态属性
4.1.2静态方法
4.2友元
4.2.1友元函数
4.2.2类方法作为友元
4.2.3友元类
4.3指向类成员的指针
4.3.1利用普通指针访问属性
4.3.2指向非静态方法的指针
4.4案例三:账户类的设计
思考与练习4
实验4
第5章继承与重用
5.1继承的概念与表示
5.1.1继承与派生
5.1.2继承关系的描述
5.2继承的实现
5.2.1继承的语法形式
5.2.2访问父类的成员
5.3类之间的关系与类的构造
5.3.1继承与聚集
5.3.2子类的构造
5.3.3派生类的析构
5.4复杂对象的构造与析构
5.4.1责任重大的构造器
5.4.2类成员的构造与析构次序
5.5继承的工作方式
5.5.1派生类是一种(个)基类
5.5.2利用指针和引用的访问
5.5.3非public方式派生
5.6案例四:公司员工类的设计(二)
5.6.1雇员类的定义
5.6.2工人类的定义
5.6.3经理类的定义
思考与练习5
实验5
第6章虚函数与多态性
6.1多态性及其语法规则
6.1.1多态性与联编方式
6.1.2用虚函数实现动态绑定
6.2共同基类下的对象访问
6.2.1概念中的共性
6.2.2公共基类
6.2.3利用虚函数支持动态访问
6.3对虚函数的进一步讨论
6.3.1如何构成虚函数关系
6.3.2类的构造、析构与虚函数
6.3.3虚函数的内部实现机制
6.3.4重载、覆盖和隐藏
6.3.5动态造型(dynamic_cast)
6.4纯虚函数与抽象类
6.4.1纯虚函数
6.4.2抽象类
6.5多重继承
6.5.1多重继承的语法规则
6.5.2多重继承中的二义性
6.5.3虚继承
6.6案例五:公司员工类的设计(三)
6.6.1雇员类的定义
6.6.2其他类的定义
思考与练习6
实验6
第7章运算符重载
7.1重载运算符的概念与一般方法
7.1.1运算符重载是函数重载
7.1.2重载运算符的两种方法
7.1.3重载运算符的限制
7.2重载运算符的设计
7.2.1运算符函数的参数
7.2.2运算符函数的返回值
7.3常见运算符的重载
7.3.1重载增量运算符++
7.3.2重载赋值运算符=
7.3.3重载==运算符和!=运算符
7.3.4重载下标运算符()
7.3.5重载类型转换运算符()
7.3.6重载函数调用运算符与函数对象
7.4案例六:一个向量类的运算符重载
7.4.1向量类定义
7.4.2为向量添加运算
思考与练习7
实验7
第8章流与文件操作
8.1理解流机制
8.1.1流与文件
8.1.2从函数到对象
8.1.3源、汇和iostream流控制类
8.2构造可流的类
8.2.1再谈cout和cin对象
8.2.2重载输出运算符<<
8.2.3重载输入运算符>>
8.3格式控制
8.3.1使用流的方法
8.3.2使用操控符
8.3.3内存格式化(字符串流)
8.4文件流
8.4.1文件流的打开与关闭
8.4.2文件的读写操作
8.4.3二进制文件
8.4.4文件的随机访问
8.5案例七:一个图书管理系统的设计
8.5.1对象的输入/输出
8.5.2管理程序
思考与练习8
实验8
第9章类模板、容器与泛型算法
9.1类模板
9.1.1类模板的定义
9.1.2使用类模板
9.1.3类模板的方法实现
9.1.4类模板与普通类之间的相互继承
9.1.5一个模板类实例complex
9.1.6设计一个队列模板Queue
9.2容器与泛型
9.2.1抽象容器类模板
9.2.2泛型编程
9.3迭代器
9.3.1输入迭代器
9.3.2输出迭代器
9.3.3前向迭代器
9.3.4双向迭代器和随机访问迭代器
9.3.5容器提供的迭代器
9.3.6插入迭代器(适配器)
9.3.7反向迭代器
9.4几种主要容器类与类的方法
9.4.1容器类的主要方法
9.4.2向量(vector)容器
9.4.3列表(list)容器
9.4.4双端队列(deque)、栈(stack)和队列(queue)容器
9.4.5映射(map)容器
9.5常用的通用算法
9.5.1只读算法
9.5.2改写元素算法
素排序算法
思考与练习9
实验9
第10章异常处理
10.1异常及常规处理方法
10.1.1常见的异常
10.1.2常规处理方法
10.2用try—catch结构处理异常
10.2.1try—catch异常处理机制
10.2.2异常
10.2.3抛出异常
10.2.4用try结构监视异常
10.2.5用catch结构处理异常
10.3合理处理异常
10.3.1异常类设计
10.3.2多catch结构组成的异常捕捉网
10.3.3捕捉自己应该处理的异常
10.3.4申明异常
思考与练习10
实验10
附录AC++Builder集成化环境的使用
附录BDEV—C++与Visual C++6编程环境
附录C运算符的优先级与结合性
参考文献
序言
前 言
C++是计算机软件领域中覆盖面最广的编程语言,得到了极为广泛的关注并有大量应用C++开发的应用系统。以介绍C++编程为目的的图书数量众多,包括国内外学者撰写的各种设计类、教材类书籍,其中不乏学习和研究C++语言程序设计的经典,如《C++Primer中文版》、《C++语言程序设计(特别版)》和《Effective C++》等。不过,因为C++语言本身的内容多,也有很多技术和概念较为复杂,还有部分技术甚至脱离了开发者的范畴。因此,如何对内容进行取舍,以什么样的方式讨论所涉及的技术,怎样有效地结合工程实践,都是值得思考的问题。事实上,各类学校开设C++课程的时间、先期的课程安排、教学大纲的要求等都不尽相同,而多数学习者也不是以成为C++语言的专家为目标,注重的是掌握必备的知识,能更好地应用其从事软件开发工作。基于这些观点,我们编写了《标准C++程序设计》(第一版),力图以有限的篇幅透彻讲解标准C++语言的核心内容。
本书在第一版的基础上,结合教学要求的变化和教学过程反映出来的问题,对原书做了较大幅度的调整,对结构化的程序设计内容进行压缩,扩展对面向对象分析与设计方法的讨论,并增加项目案例以强化对工程实践的要求。总体上,本书继承了第一版的特色,同时又彰显了一些新的特点:
? 简洁通俗、平实透彻讲解 从过程化程序设计过渡到面向对象意味着对问题的看待和处理方法的转变,甚至要花相当的精力来转变观念。因此,将重点问题概括、展开,用通俗的语言讲清道理,而不是用代码代替。
? 概括、突出问题核心 对解决一类问题的核心内容给予总结、概括和突出,说明此类问题的实质和解决方法的关键而不是一个具体题目的解法。
? 由浅入深、循序渐进展开问题 在对相关知识点进行铺垫的基础上,从基本思想和存在的问题入手,边引导边展开,逐步说明解决问题的技术和方法,避免突兀和跳跃,增强沉浸感。
? 适当引入工程问题 选取领域中有代表性的工程应用实践问题作为设计案例,使学习更靠近应用,激发课程学习和解决实际问题的兴趣。
? 突出重要理念和思想 作为教材,对于重要的核心问题、关键技术和应该遵循的理念给出特殊提示,这些提示贯穿于各主要知识点,对应重点掌握的核心知识进行强化。同时,这些提示可作为注意事项,对程序设计者积累经验、养成良好习惯具有很好的警示作用。
本书可作为第二门程序设计课程的教材,最好应在学过C语言之后使用。本书内容包括过程化设计和面向对象两部分构成,但对过程化设计只以很少篇幅做提要式介绍。全书共分10章。第1章介绍C++语言的预备知识,并用简单示例比较了过程化程序设计与面向对象程序设计在思考问题上的差异,介绍面向对象程序设计的主要特点,基本的面向对象问题分析和程序设计方法。第2章介绍C++语言的过程化语法,并对C++语言中的基本对象作了渗透。第3、4章介绍C++语言的封装特性,第5、6章分别介绍继承和多态性。第7、8章分别讨论运算符重载和流技术。第9章简要说明了建立在类模板基础上的泛型编程技术。第10章介绍了C++的异常处理机制。
本书的每章开始以精炼的语言扼要说明其主要内容,难点被适当地分解在各章里。部分重点章节安排了若干有实际背景的设计案例。每章最后配备了若干思考题和相当数量的习题。思考题有助于理解语言的语法现象,值得认真对照教材去分析,或者构造适当的例子去实验,而通过完成这些习题,有助于对知识点的透彻掌握。
书中所有的完整程序代码都由作者在C++Builder 6.0环境下调试通过,它们都可以在其他环境下正常运行。为了帮助学习者顺利进行编程实践,书后以附录形式对C++Builder 6.0、DEV C++和Visual C++ 6.0这几种环境的编程甚至程序调试方法都给出了适度介绍。
对于学习者,掌握程序设计技术最好的途径就是上机实验。为此,本书的每章末给出了大量的实践性题目,它们都有不同程度的应用背景。我们认为,它们是使学习者经过自身动手实践并最终掌握利用C++设计程序的不可跳跃的阶梯。
另外,本书注重程序设计的理念和实际编程技术,目标是努力提高学生的编程能力,摆脱计算机专业毕业生不会编程的现象。
本书由牛连强担任主编,马广焜、任义和张刚分别主要参与了第5、6章、第3、4章和第8、9章的编写工作,由牛连强进行全书统稿。
还应该说明,这是一本可以用作48~64学时教学的教材。我们努力从实用的角度来介绍标准C++语言的基本内容和技术精华,但限于篇幅,更深、更详细地研究时可参考书后列出的参考书目,其中不乏一些经典的著作。
……
作 者
文摘
版权页:
插图:
《普通高等教育"十三五"规划教材:标准C++程序设计(第2版)》的每章开始以精炼的语言扼要说明其主要内容,难点被适当地分解在各章里。部分重点章节安排了若干有实际背景的设计案例。每章最后配备了若干思考题和相当数量的习题。思考题有助于理解语言的语法现象,值得认真对照教材去分析,或者构造适当的例子去实验,而通过完成这些习题,有助于对知识点的透彻掌握。为了帮助学习者顺利进行编程实践,书后以附录形式对C++Builder6.0、DEVC++和VisualC++6.0这几种环境的编程甚至程序调试方法都给出了适度介绍。
作者简介
牛连强,男,沈阳工业大学软件学院院长、教授二十余年来,长期从事高等学校计算机领域的教学和科研工作,教学经验丰富、科研项目成果丰富,并出版了多部教材和专著,发表论文40余篇。
目录
第1章C++语言与面向对象程序设计概述
1.1C++语言概述
1.1.1标准C++语言的产生与发展
1.1.2编写简单的C++语言程序
1.2由过程化到面向对象程序设计
1.2.1过程化程序设计
1.2.2面向对象的程序设计
1.3面向对象程序的主要特征
1.3.1抽象与封装
1.3.2由继承实现重用
1.3.3由多态反映变革
1.4面向对象的问题分析
1.4.1确定类
1.4.2确定类的属性
1.4.3确定类的方法
1.4.4确定对象模式
思考与练习1
实验1
第2章C++语言基础
2.1标识符与关键字
2.1.1标识符
2.1.2关键字
2.2数据与数据类型
2.2.1基本数据类型
2.2.3字面值
2.2.4符号常量
2.2.5变量
2.3基本运算
2.3.1运算符和表达式
2.3.2数据类型转换与造型
2.4语句与流程控制
2.4.1简单语句与复合语句
2.4.2分支语句
2.4.3循环语句
2.4.4流程转向语句
2.4.5数据输入与输出
2.5指针、数组与引用
2.5.1指针
2.5.2数组
2.5.3引用
2.6函数
2.6.1函数的定义与声明
2.6.2函数调用与参数匹配
2.6.3函数返回值与函数调用表达式
2.6.4形式参数的默认值
2.6.5内联函数
2.6.6函数重载
2.6.7函数模板
2.7new、delete与动态对象
2.7.1动态生成和销毁一个对象
2.7.2动态生成和销毁对象数组
2.8名字空间
2.8.1名字冲突及对策
2.8.2定义和使用名字空间
2.9预处理指令
2.9.1宏定义
2.9.2条件编译
2.9.3文件包含
思考与练习2
实验2
第3章类、对象与封装
3.1类
3.1.1类的含义与表述
3.1.2类定义的语法规则
3.2对象
3.2.1对象定义
3.2.2成员访问
3.2.3对象存储
3.3类的方法
3.3.1为类提供必要的方法
3.3.2inline方法
3.3.3const方法
3.3.4隐含的this指针
3.3.5方法重载与缺省参数
3.3.6类的模板函数方法
3.4构造与析构
3.4.1初始化的难题
3.4.2构造函数与对象初始化
3.4.3无名对象
3.4.4对象数组与动态对象
3.4.5初始化列表与特殊成员的初始化
3.4.6共用体类与位域类
3.4.7析构函数与对象拆除
3.5拷贝构造与对象拆除
3.5.1拷贝构建新对象
3.5.2改变缺省的拷贝行为
3.5.3拷贝构造器的实现
3.5.4用自己定义的析构器拆除对象
3.6字符串类string
3.6.1string类的属性与对象构造
3.6.2string类支持的主要运算
3.6.3string类的主要方法
3.7案例一:设计一个栈类
3.8案例二:公司员工类的设计(一)
思考与练习3
实验3
第4章类的静态成员、友元与指针访问
4.1静态成员
4.1.1静态属性
4.1.2静态方法
4.2友元
4.2.1友元函数
4.2.2类方法作为友元
4.2.3友元类
4.3指向类成员的指针
4.3.1利用普通指针访问属性
4.3.2指向非静态方法的指针
4.4案例三:账户类的设计
思考与练习4
实验4
第5章继承与重用
5.1继承的概念与表示
5.1.1继承与派生
5.1.2继承关系的描述
5.2继承的实现
5.2.1继承的语法形式
5.2.2访问父类的成员
5.3类之间的关系与类的构造
5.3.1继承与聚集
5.3.2子类的构造
5.3.3派生类的析构
5.4复杂对象的构造与析构
5.4.1责任重大的构造器
5.4.2类成员的构造与析构次序
5.5继承的工作方式
5.5.1派生类是一种(个)基类
5.5.2利用指针和引用的访问
5.5.3非public方式派生
5.6案例四:公司员工类的设计(二)
5.6.1雇员类的定义
5.6.2工人类的定义
5.6.3经理类的定义
思考与练习5
实验5
第6章虚函数与多态性
6.1多态性及其语法规则
6.1.1多态性与联编方式
6.1.2用虚函数实现动态绑定
6.2共同基类下的对象访问
6.2.1概念中的共性
6.2.2公共基类
6.2.3利用虚函数支持动态访问
6.3对虚函数的进一步讨论
6.3.1如何构成虚函数关系
6.3.2类的构造、析构与虚函数
6.3.3虚函数的内部实现机制
6.3.4重载、覆盖和隐藏
6.3.5动态造型(dynamic_cast)
6.4纯虚函数与抽象类
6.4.1纯虚函数
6.4.2抽象类
6.5多重继承
6.5.1多重继承的语法规则
6.5.2多重继承中的二义性
6.5.3虚继承
6.6案例五:公司员工类的设计(三)
6.6.1雇员类的定义
6.6.2其他类的定义
思考与练习6
实验6
第7章运算符重载
7.1重载运算符的概念与一般方法
7.1.1运算符重载是函数重载
7.1.2重载运算符的两种方法
7.1.3重载运算符的限制
7.2重载运算符的设计
7.2.1运算符函数的参数
7.2.2运算符函数的返回值
7.3常见运算符的重载
7.3.1重载增量运算符++
7.3.2重载赋值运算符=
7.3.3重载==运算符和!=运算符
7.3.4重载下标运算符()
7.3.5重载类型转换运算符()
7.3.6重载函数调用运算符与函数对象
7.4案例六:一个向量类的运算符重载
7.4.1向量类定义
7.4.2为向量添加运算
思考与练习7
实验7
第8章流与文件操作
8.1理解流机制
8.1.1流与文件
8.1.2从函数到对象
8.1.3源、汇和iostream流控制类
8.2构造可流的类
8.2.1再谈cout和cin对象
8.2.2重载输出运算符<<
8.2.3重载输入运算符>>
8.3格式控制
8.3.1使用流的方法
8.3.2使用操控符
8.3.3内存格式化(字符串流)
8.4文件流
8.4.1文件流的打开与关闭
8.4.2文件的读写操作
8.4.3二进制文件
8.4.4文件的随机访问
8.5案例七:一个图书管理系统的设计
8.5.1对象的输入/输出
8.5.2管理程序
思考与练习8
实验8
第9章类模板、容器与泛型算法
9.1类模板
9.1.1类模板的定义
9.1.2使用类模板
9.1.3类模板的方法实现
9.1.4类模板与普通类之间的相互继承
9.1.5一个模板类实例complex
9.1.6设计一个队列模板Queue
9.2容器与泛型
9.2.1抽象容器类模板
9.2.2泛型编程
9.3迭代器
9.3.1输入迭代器
9.3.2输出迭代器
9.3.3前向迭代器
9.3.4双向迭代器和随机访问迭代器
9.3.5容器提供的迭代器
9.3.6插入迭代器(适配器)
9.3.7反向迭代器
9.4几种主要容器类与类的方法
9.4.1容器类的主要方法
9.4.2向量(vector)容器
9.4.3列表(list)容器
9.4.4双端队列(deque)、栈(stack)和队列(queue)容器
9.4.5映射(map)容器
9.5常用的通用算法
9.5.1只读算法
9.5.2改写元素算法
素排序算法
思考与练习9
实验9
第10章异常处理
10.1异常及常规处理方法
10.1.1常见的异常
10.1.2常规处理方法
10.2用try—catch结构处理异常
10.2.1try—catch异常处理机制
10.2.2异常
10.2.3抛出异常
10.2.4用try结构监视异常
10.2.5用catch结构处理异常
10.3合理处理异常
10.3.1异常类设计
10.3.2多catch结构组成的异常捕捉网
10.3.3捕捉自己应该处理的异常
10.3.4申明异常
思考与练习10
实验10
附录AC++Builder集成化环境的使用
附录BDEV—C++与Visual C++6编程环境
附录C运算符的优先级与结合性
参考文献
序言
前 言
C++是计算机软件领域中覆盖面最广的编程语言,得到了极为广泛的关注并有大量应用C++开发的应用系统。以介绍C++编程为目的的图书数量众多,包括国内外学者撰写的各种设计类、教材类书籍,其中不乏学习和研究C++语言程序设计的经典,如《C++Primer中文版》、《C++语言程序设计(特别版)》和《Effective C++》等。不过,因为C++语言本身的内容多,也有很多技术和概念较为复杂,还有部分技术甚至脱离了开发者的范畴。因此,如何对内容进行取舍,以什么样的方式讨论所涉及的技术,怎样有效地结合工程实践,都是值得思考的问题。事实上,各类学校开设C++课程的时间、先期的课程安排、教学大纲的要求等都不尽相同,而多数学习者也不是以成为C++语言的专家为目标,注重的是掌握必备的知识,能更好地应用其从事软件开发工作。基于这些观点,我们编写了《标准C++程序设计》(第一版),力图以有限的篇幅透彻讲解标准C++语言的核心内容。
本书在第一版的基础上,结合教学要求的变化和教学过程反映出来的问题,对原书做了较大幅度的调整,对结构化的程序设计内容进行压缩,扩展对面向对象分析与设计方法的讨论,并增加项目案例以强化对工程实践的要求。总体上,本书继承了第一版的特色,同时又彰显了一些新的特点:
? 简洁通俗、平实透彻讲解 从过程化程序设计过渡到面向对象意味着对问题的看待和处理方法的转变,甚至要花相当的精力来转变观念。因此,将重点问题概括、展开,用通俗的语言讲清道理,而不是用代码代替。
? 概括、突出问题核心 对解决一类问题的核心内容给予总结、概括和突出,说明此类问题的实质和解决方法的关键而不是一个具体题目的解法。
? 由浅入深、循序渐进展开问题 在对相关知识点进行铺垫的基础上,从基本思想和存在的问题入手,边引导边展开,逐步说明解决问题的技术和方法,避免突兀和跳跃,增强沉浸感。
? 适当引入工程问题 选取领域中有代表性的工程应用实践问题作为设计案例,使学习更靠近应用,激发课程学习和解决实际问题的兴趣。
? 突出重要理念和思想 作为教材,对于重要的核心问题、关键技术和应该遵循的理念给出特殊提示,这些提示贯穿于各主要知识点,对应重点掌握的核心知识进行强化。同时,这些提示可作为注意事项,对程序设计者积累经验、养成良好习惯具有很好的警示作用。
本书可作为第二门程序设计课程的教材,最好应在学过C语言之后使用。本书内容包括过程化设计和面向对象两部分构成,但对过程化设计只以很少篇幅做提要式介绍。全书共分10章。第1章介绍C++语言的预备知识,并用简单示例比较了过程化程序设计与面向对象程序设计在思考问题上的差异,介绍面向对象程序设计的主要特点,基本的面向对象问题分析和程序设计方法。第2章介绍C++语言的过程化语法,并对C++语言中的基本对象作了渗透。第3、4章介绍C++语言的封装特性,第5、6章分别介绍继承和多态性。第7、8章分别讨论运算符重载和流技术。第9章简要说明了建立在类模板基础上的泛型编程技术。第10章介绍了C++的异常处理机制。
本书的每章开始以精炼的语言扼要说明其主要内容,难点被适当地分解在各章里。部分重点章节安排了若干有实际背景的设计案例。每章最后配备了若干思考题和相当数量的习题。思考题有助于理解语言的语法现象,值得认真对照教材去分析,或者构造适当的例子去实验,而通过完成这些习题,有助于对知识点的透彻掌握。
书中所有的完整程序代码都由作者在C++Builder 6.0环境下调试通过,它们都可以在其他环境下正常运行。为了帮助学习者顺利进行编程实践,书后以附录形式对C++Builder 6.0、DEV C++和Visual C++ 6.0这几种环境的编程甚至程序调试方法都给出了适度介绍。
对于学习者,掌握程序设计技术最好的途径就是上机实验。为此,本书的每章末给出了大量的实践性题目,它们都有不同程度的应用背景。我们认为,它们是使学习者经过自身动手实践并最终掌握利用C++设计程序的不可跳跃的阶梯。
另外,本书注重程序设计的理念和实际编程技术,目标是努力提高学生的编程能力,摆脱计算机专业毕业生不会编程的现象。
本书由牛连强担任主编,马广焜、任义和张刚分别主要参与了第5、6章、第3、4章和第8、9章的编写工作,由牛连强进行全书统稿。
还应该说明,这是一本可以用作48~64学时教学的教材。我们努力从实用的角度来介绍标准C++语言的基本内容和技术精华,但限于篇幅,更深、更详细地研究时可参考书后列出的参考书目,其中不乏一些经典的著作。
……
作 者
文摘
版权页:
插图:
ISBN | 9787121306631 |
---|---|
出版社 | 电子工业出版社 |
作者 | 牛连强 |
尺寸 | 16 |