C++面向对象程序设计这本书主要介绍了标准C++面向对象的程序设计技术,以及用VisualC++进行面向对象的Windows程序设计的基本原理和方法,可作为高等院校计算机、电子信息类专业及其他理工类相关专业的教材,也可作为C++语言自学者或程序设计人员的参考用书。
本书深入浅出地介绍了标准C++面向对象的程序设计技术,以及用VisualC++进行面向对象的Windows程序设计的基本原理和方法,包括C++对C语言的扩展、类、对象、友元、继承、多态性、虚函数、重载、I/O流类库、文件、模板与STL、C++Windows程序的结构、消息驱动、MFC应用程序框架、GDI、菜单、对话框、工具栏、文档与视图等内容。
全书本着易于理解、实用性强的原则设计其内容和案例,并以一个规模较大的综合性程序的编制贯穿于C++面向对象技术和Windows程序设计的全过程,引导读者理解和领会面向对象程序设计的思想、技术、方法和要领,掌握在Windows程序中应用自定义类实现程序功能的软件开发方法。
本书取材新颖,内容全面,通俗易懂,可作为高等院校计算机、电子信息类专业及其他理工类相关专业的教材,也可作为C++语言自学者或程序设计人员的参考用书。
目录
- 第1章 C++与面向对象程序设计概述1
- 1.1 面向过程与面向对象程序设计1
- 1.2 面向对象程序语言的特征3
- 1.3 C++与面向对象程序设计6
- 1.4 C++程序的结构7
- 1.5 数据输入与输出10
- 1.5.1 流的概念10
- 1.5.2 cin和析取运算符>>10
- 1.5.3 cout和插入运算符<<12
- 1.5.4 输出格式控制符14
- 1.5.5 数制基数15
- 1.6 编程实作——VC++ 6.0编程简介16
- 1.6.1 在VC++中编辑源程序16
- 1.6.2 编译和调试程序18
- 1.6.3 关于Visual C++的项目工作区文件19
- 1.6.4 利用Visual C++向导创建应用程序20
- 习题121
- 第2章 C++基础22
- 2.1 C++对C语言数据类型的扩展22
- 2.2 局部变量声明23
- 2.3 指针23
- 2.3.1 指针概念的回顾23
- 2.3.2 指针与0和void*24
- 2.3.3 new和delete25
- 2.4 引用27
- 2.5 const常量29
- 2.5.1 常量的定义29
- 2.5.2 const与指针30
- 2.5.3 const与引用31
- 2.6 类型转换32
- 2.6.1 隐式类型转换32
- 2.6.2 显式类型转换33
- 2.7 函数34
- 2.7.1 函数原型34
- 2.7.2 函数默认参数36
- 2.7.3 函数与引用36
- 2.7.4 函数与const40
- 2.7.5 函数重载41
- 2.8 内联函数43
- 2.9 typedef44
- 2.10 命名空间44
- 2.11 预处理器47
- 2.12 作用域和生命期48
- 2.12.1 作用域48
- 2.12.2 变量类型及生命期50
- 2.12.3 变量初始化52
- 2.12.4 局部变量与函数返回地址52
- 2.13 文件输入和输出53
- 2.14 编程实作54
- 习题256
- 第3章 类与对象59
- 3.1 结构与类59
- 3.1.1 C++对结构的扩展59
- 3.1.2 类60
- 3.2 成员函数62
- 3.2.1 成员函数的定义62
- 3.2.2 常量成员函数63
- 3.3 类与封装64
- 3.4 对象65
- 3.5 构造函数67
- 3.5.1 构造函数67
- 3.5.2 无参构造函数69
- 3.5.3 重载构造函数71
- 3.5.4 拷贝构造函数72
- 3.5.5 构造函数与初始化列表75
- 3.6 析构函数77
- 3.7 静态成员79
- 3.8 this指针82
- 3.9 类对象成员85
- 3.10 对象数组和对象指针88
- 3.11 向函数传递对象89
- 3.12 类的作用域和对象的生存期90
- 3.13 友元92
- 3.14 编程实作:类的接口与实现的分离94
- 3.14.1 头文件94
- 3.14.2 源文件95
- 3.14.3 对类的应用96
- 习题398
- 第4章 继承102
- 4.1 继承的概念102
- 4.2 protected和继承103
- 4.3 继承方式104
- 4.4 基类与派生类的关系107
- 4.4.1 成员函数的重定义和名字隐藏107
- 4.4.2 基类成员访问109
- 4.5 构造函数和析构函数109
- 4.5.1 派生类构造函数、析构函数的定义和调用次序109
- 4.5.2 构造函数和析构函数的构造规则110
- 4.5 多继承115
- 4.5.1 多继承的概念和应用115
- 4.5.2 多继承方式下成员名的二义性117
- 4.5.3 多继承的构造函数与析构函数117
- 4.6 虚拟继承119
- 4.7 基类与派生类对象的关系123
- 4.8 继承与组合125
- 4.9 编程实作125
- 习题4130
- 第5章 多态性133
- 5.1 静态绑定和动态绑定133
- 5.2 虚函数133
- 5.2.1 虚函数的意义133
- 5.2.2 虚函数的特性136
- 5.3 虚析构函数140
- 5.4 纯虚函数与抽象类141
- 5.4.1 纯虚函数和抽象类141
- 5.4.3 抽象类的应用143
- 5.4 运行时类型信息149
- 5.4.1 dynamic_cast149
- 5.4.2 typeid153
- 5.5 编程实作154
- 习题5156
- 第6章 运算符重载159
- 6.1 运算符重载基础159
- 6.2 重载二元运算符161
- 6.2.1 类与二元运算符重载161
- 6.2.2 友元二元运算符重载的特殊用途164
- 6.3 重载一元运算符166
- 6.3.1 作为成员函数重载166
- 6.3.2 作为友元函数重载167
- 6.4 特殊运算符重载169
- 6.4.1 运算符++和--的重载169
- 6.4.2 重载赋值运算符=171
- 6.4.3 重载[]173
- 6.4.4 类与其他数据类型之间的转换175
- 6.5 输入/输出运算符重载177
- 6.5.1 重载输出运算符<<177
- 6.5.2 重载输入运算符>>177
- 6.5.3 重载运算符<<和>>举例178
- 6.6 编程实作179
- 习题6183
- 第7章 模板与STL186
- 7.1 模板概念186
- 7.2 函数模板与模板函数187
- 7.2.1 函数模板的定义187
- 7.2.2 函数模板的实例化188
- 7.2.3 模板参数189
- 7.3 类模板192
- 7.3.1 类模板的概念192
- 7.3.2 类模板的定义192
- 7.3.3 类模板实例化194
- 7.3.4 类模板的使用196
- 7.4 STL197
- 7.4.1 容器197
- 7.4.2 迭代器205
- 7.4.3 关联式容器207
- 7.4.4 算法211
- 7.5 编程实作214
- 习题7216
- 第8章 异常217
- 8.1 异常处理概述217
- 8.2 C++异常处理基础218
- 8.2.1 异常处理的结构218
- 8.2.2 异常捕获219
- 8.3 异常与函数220
- 8.4 异常处理的几种特殊情况222
- 8.5 异常和类225
- 8.5.1 构造函数与异常225
- 8.5.2 异常类226
- 8.5.3 派生异常类的处理230
- 习题8232
- 第9章 文件与流235
- 9.1 C++ I/O流及流类库235
- 9.2 使用I/O成员函数236
- 9.2.1 istream流中的常用成员函数237
- 9.2.2 ostream流中的常用成员函数239
- 9.2.3 数据输入、输出的格式控制240
- 9.3 文件操作242
- 9.3.1 文件与流243
- 9.3.2 二进制文件245
- 9.3.3 随机文件249
- 习题9250
- 第10章 C++ Windows程序设计基础253
- 10.1 Windows程序设计基础253
- 10.1.1 窗口253
- 10.1.2 事件驱动和消息响应253
- 10.1.3 Windows程序的文件构成254
- 10.1.4 Visual C++的Windows程序设计方法255
- 10.2 Windows程序设计的常用数据结构256
- 10.3 Windows程序的基本结构259
- 10.4 Windows程序的控制流程261
- 10.5 Windows程序的数据输出267
- 10.6 消息驱动程序设计270
- 习题10273
- 第11章 MFC程序设计275
- 11.1 MFC程序基础275
- 11.1.1 MFC类275
- 11.1.2 MFC程序的结构277
- 11.1.3 MFC程序的执行流程279
- 11.1.4 消息映射281
- 11.2 应用程序框架283
- 11.2.1 应用程序框架的概念283
- 11.2.2 用向导建立应用程序框架283
- 11.2.3 应用程序框架的结构286
- 11.2.4 应用程序框架类之间的关系292
- 11.3 MFC程序的数据输出294
- 11.3.1 MFC中的图形类294
- 11.3.2 绘图对象296
- 11.3.3 用MFC向导添加消息映射函数297
- 11.3.4 OnPaint函数与输出302
- 11.4 对话框304
- 11.4.1 对话框的类型304
- 11.4.2 用资源编辑器建立对话框304
- 11.5 菜单和工具栏310
- 11.5.1 直接修改应用程序框架的菜单310
- 11.5.2 建立新菜单栏313
- 11.5.3 工具栏操作314
- 11.6 视图与文档315
- 习题11318
- 第12章 综合程序设计320
- 12.1 在应用程序框架中包含并修改自定义类320
- 12.2 在事件函数中操作类对象322
- 12.3 添加对话框325
- 12.4 添加程序菜单327
- 12.5 文档序列化331
- 习题12341
- 参考文献342