《C++面向对象程序设计》针对已有C程序设计基础、学习C++面向对象程序设计的读者。全书分为12章,第1章首先介绍面向对象程序设计的思想和基本概念,以及C与C++的关系;在第2、3、6章介绍C++类、对象、重载的概念及使用方法;第4、5章详细介绍常量及变量的生存期与作用域;第7、8章详细讲解类的继承、组合、多态及模板问题;第9、10、11章详细介绍I/O流、异常处理及VisualC++2008环境;最后给出了一个综合实例。全书内容由浅入深,采用案例教学的方法,力求将复杂的概念用简洁浅显的语言表达,并用实例对方法进行说明。书中还配有大量的习题。《C++面向对象程序设计》配有电子课件、习题解答等教学资源。
《C++面向对象程序设计》可作为高等学校C++面向对象程序设计课程的教材,也可作为工程技术人员的参考书。
目录
- 第1章面向对象的方法学1
- 1.1面向对象的发展1
- 1.2面向对象方法学概述2
- 1.2.1面向对象分析2
- 1.2.2面向对象设计3
- 1.2.3面向对象实现3
- 1.3面向对象程序设计的特点3
- 1.3.1抽象性4
- 1.3.2封装性4
- 1.3.3继承性5
- 1.3.4多态性5
- 1.4面向对象的术语6
- 1.5其他面向对象程序设计语言8
- 1.5.1Java语言8
- 1.5.2C#语言9
- 1.6从C到C++10
- 1.7MicrosoftVisualStudio2008开发环境13
- 小结16
- 习题17
- 思考题17
- 第2章类与对象18
- 2.1类的定义18
- 2.1.1类定义格式18
- 2.1.2成员函数的定义20
- 2.2对象的定义与使用21
- 2.2.1对象的定义21
- 2.2.2对象的使用21
- 2.2.3对象的赋值25
- 2.3构造函数和析构函数26
- 2.3.1构造函数27
- 2.3.2析构函数29
- 2.4内存的动态分配33
- 2.4.1运算符new33
- 2.4.2运算符delete34
- 2.5对象数组和对象指针36
- 2.5.1对象数组36
- 2.5.2对象指针38
- 2.5.3自引用指针this39
- 2.6函数参数的传递机制42
- 2.6.1使用对象作为函数参数42
- 2.6.2使用对象指针作为函数参数43
- 2.6.3使用对象引用作为函数参数44
- 2.6.4三种传递方式比较45
- 2.7友元46
- 2.7.1友元函数46
- 2.7.2友元类50
- 2.8程序实例52
- 小结59
- 习题60
- 思考题64
- 第3章函数重载与内联函数65
- 3.1非成员函数重载65
- 3.2成员函数重载67
- 3.3函数的默认参数69
- 3.4内联函数71
- 小结73
- 习题73
- 思考题74
- 第4章常量与引用75
- 4.1const的最初动机75
- 4.1.1由define引发的问题75
- 4.1.2const使用方法76
- 4.2const与指针77
- 4.2.1指向常量的指针77
- 4.2.2常指针77
- 4.3const与函数78
- 4.3.1const类型参数78
- 4.3.2const类型返回值78
- 4.3.3const在传递地址中的应用79
- 4.4const与类81
- 4.4.1类内const局部常量81
- 4.4.2常对象与常成员函数82
- 4.5引用(&)84
- 4.5.1引用的概念84
- 4.5.2引用与指针86
- 4.5.3引用与函数87
- 4.6拷贝构造函数89
- 小结93
- 习题93
- 思考题94
- 第5章静态与命名控制95
- 5.1静态数据成员95
- 5.2静态成员函数98
- 5.3静态对象102
- 5.4类作用域及对象的生存期104
- 5.4.1类作用域104
- 5.4.2对象的生存期105
- 5.5命名空间106
- 5.5.1命名空间的定义106
- 5.5.2命名空间的应用107
- 小结109
- 习题109
- 思考题111
- 第6章运算符重载112
- 6.1运算符重载的基本概念112
- 6.2成员函数重载运算符112
- 6.2.1单目运算符重载113
- 6.2.2双目运算符重载114
- 6.2.3重载++、???运算符117
- 6.2.4重载赋值运算符120
- 6.2.5重载下标运算符124
- 6.2.6重载函数调用运算符“()"126
- 6.3友元函数重载运算符127
- 6.4成员函数重载运算符与友元函数重载运算符比较132
- 6.5类型转换134
- 6.5.1系统预定义类型之间的转换134
- 6.5.2用构造函数实现类型转换135
- 6.5.3用类类型转换函数进行类型转换137
- 小结142
- 习题142
- 思考题145
- 第7章组合、继承与多态性146
- 7.1组合146
- 7.2继承147
- 7.3继承与组合150
- 7.4构造与析构次序152
- 7.4.1成员对象初始化152
- 7.4.2构造和析构顺序153
- 7.5派生类重载基类函数的访问157
- 7.6虚函数158
- 7.6.1静态绑定与动态绑定159
- 7.6.2虚函数159
- 7.6.3虚析构函数161
- 7.7纯虚函数和抽象基类162
- 7.8多重继承164
- 7.8.1多继承语法164
- 7.8.2多继承中的二义性166
- 7.8.3最终派生类167
- 7.8.4多继承的构造顺序169
- 小结170
- 习题171
- 思考题176
- 第8章模板178
- 8.1模板的概念178
- 8.2函数模板与模板函数178
- 8.3类模板与模板类183
- 8.4程序实例188
- 小结198
- 习题198
- 思考题199
- 第9章输入/输出流200
- 9.1C++流类库简介200
- 9.2输入/输出流202
- 9.2.1基本输出流202
- 9.2.2基本输入流204
- 9.2.3格式化输入/输出205
- 9.2.4其他的输入/输出函数212
- 9.3用户自定义类型的输入/输出214
- 9.3.1重载输出运算符“9.3.2重载输入运算符“>>”215
- 9.4文件输入/输出217
- 9.4.1顺序访问文件218
- 9.4.2随机访问文件222
- 小结223
- 习题224
- 思考题226
- 第10章异常处理227
- 10.1异常处理概述227
- 10.2抛出异常227
- 10.3异常捕获228
- 10.3.1异常处理语法228
- 10.3.2异常接口声明230
- 10.3.3捕获所有异常230
- 10.3.4未捕获异常的处理230
- 10.4构造函数、析构函数与异常处理231
- 10.5异常匹配234
- 10.6标准异常及层次结构234
- 小结235
- 习题235
- 第11章VisualC++2008开发环境236
- 11.1VisualC++2008概述236
- 11.2VisualC++2008环境237
- 11.2.1VisualC++2008操作界面237
- 11.2.2项目238
- 11.2.3调试环境239
- 11.3Windows编程240
- 11.3.1Windows常用数据类型241
- 11.3.2消息与事件242
- 11.3.3窗口消息示例243
- 11.4MFC类库245
- 11.5MFC编程实例248
- 小结252
- 习题252
- 第12章综合实例253
- 12.1系统分析与设计253
- 12.1.1系统功能分析253
- 12.1.2系统功能类模型253
- 12.1.3系统功能流程254
- 12.2设计实现255
- 12.2.1系统程序框架生成255
- 12.2.2建立图元类257
- 12.2.3界面控制260
- 12.2.4绘制图元——线段264
- 12.2.5绘制图元——矩形270
- 12.2.6绘制图元——椭圆274
- 12.2.7绘制图元——文字276
- 12.2.8绘制图元——折线与多边形279
- 12.2.9图元文件存取282
- 小结293
- 习题293
- 参考文献294