简介
c++是近年来国内外广泛学习和使用的现代计算机语言,国内许多高校已陆续开设了c++程序设计课程。但是,由于c++牵涉概念很多,语法比较复杂,内容十分广泛,使不少人感到学习难度较大,难以入门。.
本书作者深入调查了我国大学的程序设计课程的现状和发展趋势,参阅了国内外数十种c++的教材,认真分析了学习者在学习过程中遇到的困难,研究了初学者的认识规律。本书做到准确定位,合理取舍内容,设计了读者易于学习的教材体系,并且以通俗易懂的语言化解了许多复杂的概念,大大减少了初学者学习c++的困难。
本书是为已有c语言基础的读者编写的,主要介绍面向对象程序设计的知识和方法。本书内容全面,例题丰富,概念清晰,循序渐进,易于学习。..
本书是依据ansi c++标准进行介绍的,引导读者从一开始就按标准c++的规定编程。本书配有两本辅导教材,即《c++面向对象程序设计题解与上机指导》和《c++程序设计实践指导》。
本书是大学各专业学生学习c++的基础教材,也是适于初学者自学的教材,即使没有教师讲授,读者也能看懂本书的大部分内容。使用本书教学将会大大降低教学难度。...
目录
第1章 c++的初步知识.1
1.1 从c到c++1
1.2 最简单的c++程序2
1.3 c++对c的扩充8
1.3.1 c++的输入输出8
1.3.2 用const定义常变量11
1.3.3 函数原型声明11
1.3.4 函数的重载12
1.3.5 函数模块14
1.3.6 有默认参数的函数16
1.3.7 变量的引用17
1.3.8 内置函数23
1.3.9 作用域运算符25
1.3.10 字符串变量26
1.3.11 动态分配/撤销内存的运算符new和delete29
1.3.12 小结30
1.4 c++程序的编写和实现31
1.5 关于c++上机实践33
习题33
第2章 类和对象37
.2.1 面向对象程序设计方法概述37
2.1.1 什么是面向对象的程序设计37
2.1.2 面向对象程序设计的特点40
2.1.3 类和对象的作用41
2.1.4 面向对象的软件开发42
2.2 类的声明和对象的定义44
2.2.1 类和对象的关系44
2.2.2 声明类类型44
2.2.3 定义对象的方法46
2.2.4 类和结构体类型的异同48
2.3 类的成员函数49
2.3.1 成员函数的性质49
2.3.2 在类外定义成员函数50
2.3.3 inline成员函数51
2.3.4 成员函数的存储方式52
2.4 对象成员的引用54
2.4.1 通过对象名和成员运算符访问对象中的成员54
2.4.2 通过指向对象的指针访问对象中的成员55
2.4.3 通过对象的引用来访问对象中的成员55
2.5 类和对象的简单应用举例55
2.6 类的封装性和信息隐蔽62
2.6.1 公用接口与私有实现的分离62
2.6.2 类声明和成员函数定义的分离64
2.6.3 面向对象程序设计中的几个名词66
习题67
第3章 关于类和对象的进一步讨论69
3.1 构造函数69
3.1.1 对象的初始化69
3.1.2 构造函数的作用70
3.1.3 带参数的构造函数72
3.1.4 用参数初始化表对数据成员初始化73
3.1.5 构造函数的重载73
3.1.6 使用默认参数的构造函数75
3.2 析构函数78
3.3 调用构造函数和析构函数的顺序80
3.4 对象数组81
3.5 对象指针83
3.5.1 指向对象的指针83
3.5.2 指向对象成员的指针84
3.5.3 this指针87
3.6 共用数据的保护88
3.6.1 常对象89
3.6.2 常对象成员90
3.6.3 指向对象的常指针91
3.6.4 指向常对象的指针变量91
3.6.5 对象的常引用95
3.6.6 const型数据的小结96
3.7 对象的动态建立和释放96
3.8 对象的赋值和复制97
3.8.1 对象的赋值97
3.8.2 对象的复制99
3.9 静态成员101
3.9.1 静态数据成员102
3.9.2 静态成员函数104
3.10 友元107
3.10.1 友元函数107
3.10.2 友元类111
3.11 类模板112
习题116
第4章 运算符重载120
4.1 什么是运算符重载120
4.2 运算符重载的方法122
4.3 重载运算符的规则124
4.4 运算符重载函数作为类成员函数和友元函数127
4.5 重载双目运算符129
4.6 重载单目运算符134
4.7 重载流插入运算符和流提取运算符137
4.7.1 重载流插入运算符“[[”137
4.7.2 重载流提取运算符“]]”139
4.8 不同类型数据间的转换141
4.8.1 标准类型数据间的转换141
4.8.2 转换构造函数142
4.8.3 类型转换函数144
习题..149
第5章 继承与派生150
5.1 继承与派生的概念150
5.2 派生类的声明方式153
5.3 派生类的构成154
5.4 派生类成员的访问属性155
5.4.1 公用继承156
5.4.2 私有继承158
5.4.3 保护成员和保护继承161
5.4.4 多级派生时的访问属性164
5.5 派生类的构造函数和析构函数166
5.5.1 简单的派生类的构造函数166
5.5.2 有子对象的派生类的构造函数169
5.5.3 多层派生时的构造函数172
5.5.4 派生类构造函数的特殊形式175
5.5.5 派生类的析构函数175
5.6 多重继承176
5.6.1 声明多重继承的方法176
5.6.2 多重继承派生类的构造函数176
5.6.3 多重继承引起的二义性问题179
5.6.4 虚基类182
5.7 基类与派生类的转换187
5.8 继承与组合191
5.9 继承在软件开发中的重要意义192
习题193
第6章 多态性与虚函数198
6.1 多态性的概念198
6.2 一个典型的例子199
6.3 虚函数204
6.3.1 虚函数的作用204
6.3.2 静态关联与动态关联208
6.3.3 在什么情况下应当声明虚函数209
6.3.4 虚析构函数210
6.4 纯虚函数与抽象类211
6.4.1 纯虚函数211
6.4.2 抽象类212
6.4.3 应用实例213
习题219
第7章 输入输出流220
7.1 c++的输入和输出220
7.1.1 输入输出的含义220
7.1.2 c++的i/o对c的发展——类型安全和可扩展性220
7.1.3 c++的输入输出流221
7.2 标准输出流225
7.2.1 cout,cerr和clog流225
7.2.2 格式输出228
7.2.3 用流成员函数put输出字符232
7.3 标准输入流233
7.3.1 cin流233
7.3.2 用于字符输入的流成员函数235
7.3.3 istream类的其他成员函数239
7.4 文件操作与文件流242
7.4.1 文件的概念242
7.4.2 文件流类与文件流对象243
7.4.3 文件的打开与关闭244
7.4.4 对ascii文件的操作246
7.4.5 对二进制文件的操作251
7.5 字符串流256
习题261
第8章 c++工具262
8.1 异常处理262
8.1.1 异常处理的任务262
8.1.2 异常处理的方法263
8.1.3 在函数声明中进行异常情况指定270
8.1.4 在异常处理中处理析构函数270
8.2 命名空间272
8.2.1 为什么需要命名空间273
8.2.2 什么是命名空间276
8.2.3 使用命名空间解决名字冲突278
8.2.4 使用命名空间成员的方法280
8.2.5 无名的命名空间282
8.2.6 标准命名空间std282
8.3 使用早期的函数库283
习题284
附录a 常用字符与ascii代码对照表286
附录b 运算符与结合性287
参考文献...289
1.1 从c到c++1
1.2 最简单的c++程序2
1.3 c++对c的扩充8
1.3.1 c++的输入输出8
1.3.2 用const定义常变量11
1.3.3 函数原型声明11
1.3.4 函数的重载12
1.3.5 函数模块14
1.3.6 有默认参数的函数16
1.3.7 变量的引用17
1.3.8 内置函数23
1.3.9 作用域运算符25
1.3.10 字符串变量26
1.3.11 动态分配/撤销内存的运算符new和delete29
1.3.12 小结30
1.4 c++程序的编写和实现31
1.5 关于c++上机实践33
习题33
第2章 类和对象37
.2.1 面向对象程序设计方法概述37
2.1.1 什么是面向对象的程序设计37
2.1.2 面向对象程序设计的特点40
2.1.3 类和对象的作用41
2.1.4 面向对象的软件开发42
2.2 类的声明和对象的定义44
2.2.1 类和对象的关系44
2.2.2 声明类类型44
2.2.3 定义对象的方法46
2.2.4 类和结构体类型的异同48
2.3 类的成员函数49
2.3.1 成员函数的性质49
2.3.2 在类外定义成员函数50
2.3.3 inline成员函数51
2.3.4 成员函数的存储方式52
2.4 对象成员的引用54
2.4.1 通过对象名和成员运算符访问对象中的成员54
2.4.2 通过指向对象的指针访问对象中的成员55
2.4.3 通过对象的引用来访问对象中的成员55
2.5 类和对象的简单应用举例55
2.6 类的封装性和信息隐蔽62
2.6.1 公用接口与私有实现的分离62
2.6.2 类声明和成员函数定义的分离64
2.6.3 面向对象程序设计中的几个名词66
习题67
第3章 关于类和对象的进一步讨论69
3.1 构造函数69
3.1.1 对象的初始化69
3.1.2 构造函数的作用70
3.1.3 带参数的构造函数72
3.1.4 用参数初始化表对数据成员初始化73
3.1.5 构造函数的重载73
3.1.6 使用默认参数的构造函数75
3.2 析构函数78
3.3 调用构造函数和析构函数的顺序80
3.4 对象数组81
3.5 对象指针83
3.5.1 指向对象的指针83
3.5.2 指向对象成员的指针84
3.5.3 this指针87
3.6 共用数据的保护88
3.6.1 常对象89
3.6.2 常对象成员90
3.6.3 指向对象的常指针91
3.6.4 指向常对象的指针变量91
3.6.5 对象的常引用95
3.6.6 const型数据的小结96
3.7 对象的动态建立和释放96
3.8 对象的赋值和复制97
3.8.1 对象的赋值97
3.8.2 对象的复制99
3.9 静态成员101
3.9.1 静态数据成员102
3.9.2 静态成员函数104
3.10 友元107
3.10.1 友元函数107
3.10.2 友元类111
3.11 类模板112
习题116
第4章 运算符重载120
4.1 什么是运算符重载120
4.2 运算符重载的方法122
4.3 重载运算符的规则124
4.4 运算符重载函数作为类成员函数和友元函数127
4.5 重载双目运算符129
4.6 重载单目运算符134
4.7 重载流插入运算符和流提取运算符137
4.7.1 重载流插入运算符“[[”137
4.7.2 重载流提取运算符“]]”139
4.8 不同类型数据间的转换141
4.8.1 标准类型数据间的转换141
4.8.2 转换构造函数142
4.8.3 类型转换函数144
习题..149
第5章 继承与派生150
5.1 继承与派生的概念150
5.2 派生类的声明方式153
5.3 派生类的构成154
5.4 派生类成员的访问属性155
5.4.1 公用继承156
5.4.2 私有继承158
5.4.3 保护成员和保护继承161
5.4.4 多级派生时的访问属性164
5.5 派生类的构造函数和析构函数166
5.5.1 简单的派生类的构造函数166
5.5.2 有子对象的派生类的构造函数169
5.5.3 多层派生时的构造函数172
5.5.4 派生类构造函数的特殊形式175
5.5.5 派生类的析构函数175
5.6 多重继承176
5.6.1 声明多重继承的方法176
5.6.2 多重继承派生类的构造函数176
5.6.3 多重继承引起的二义性问题179
5.6.4 虚基类182
5.7 基类与派生类的转换187
5.8 继承与组合191
5.9 继承在软件开发中的重要意义192
习题193
第6章 多态性与虚函数198
6.1 多态性的概念198
6.2 一个典型的例子199
6.3 虚函数204
6.3.1 虚函数的作用204
6.3.2 静态关联与动态关联208
6.3.3 在什么情况下应当声明虚函数209
6.3.4 虚析构函数210
6.4 纯虚函数与抽象类211
6.4.1 纯虚函数211
6.4.2 抽象类212
6.4.3 应用实例213
习题219
第7章 输入输出流220
7.1 c++的输入和输出220
7.1.1 输入输出的含义220
7.1.2 c++的i/o对c的发展——类型安全和可扩展性220
7.1.3 c++的输入输出流221
7.2 标准输出流225
7.2.1 cout,cerr和clog流225
7.2.2 格式输出228
7.2.3 用流成员函数put输出字符232
7.3 标准输入流233
7.3.1 cin流233
7.3.2 用于字符输入的流成员函数235
7.3.3 istream类的其他成员函数239
7.4 文件操作与文件流242
7.4.1 文件的概念242
7.4.2 文件流类与文件流对象243
7.4.3 文件的打开与关闭244
7.4.4 对ascii文件的操作246
7.4.5 对二进制文件的操作251
7.5 字符串流256
习题261
第8章 c++工具262
8.1 异常处理262
8.1.1 异常处理的任务262
8.1.2 异常处理的方法263
8.1.3 在函数声明中进行异常情况指定270
8.1.4 在异常处理中处理析构函数270
8.2 命名空间272
8.2.1 为什么需要命名空间273
8.2.2 什么是命名空间276
8.2.3 使用命名空间解决名字冲突278
8.2.4 使用命名空间成员的方法280
8.2.5 无名的命名空间282
8.2.6 标准命名空间std282
8.3 使用早期的函数库283
习题284
附录a 常用字符与ascii代码对照表286
附录b 运算符与结合性287
参考文献...289
C++面向对象程序设计
- 名称
- 类型
- 大小
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×