注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书教育/教材/教辅考试计算机考试C++程序设计基础与实践

C++程序设计基础与实践

C++程序设计基础与实践

定 价:¥89.00

作 者: 牛园园,韩洁琼,李晓芳,吴成宇
出版社: 北京航空航天大学出版社
丛编项:
标 签: 暂缺

购买这本书可以去


ISBN: 9787512440876 出版时间: 2023-09-01 包装: 平装-胶订
开本: 16开 页数: 字数:  

内容简介

  本书是一本讲述C编程技术并指导实践的教材,结合大量的应用实例,详细介绍C的概念、特性以及基于C语言的程序设计开发方法。全书共分为15章,内容主要包括C的基本概念、C新特性、类和对象、类的特殊成员、友元函数、函数重载、继承特性、多态特性、string以及C特殊功能的用法等,将C 的经典使用方法融入项目开发中,提升读者对C 的认识和理解。

作者简介

暂缺《C++程序设计基础与实践》作者简介

图书目录

第1章 概 论 1
1.1 认识C 1
1.2 C 的发展  1
1.3 C与C 的区别  2
1.4 面向对象编程OOP 3
1.5 C 和泛型编程  4
1.6 C 的应用  5
1.7 C 的优缺点  5
第2章 C 新特性  7
2.1 C 入门程序分析  7
2.1.1 C 预处理器与iostream文件 7
2.1.2 头文件  8
2.1.3 名称空间  8
2.1.4 输入/输出流对象  10
2.1.5 控制符endl  16
2.2 C 变量的新用法  17
2.2.1 C 中的基本数据类型  17
2.2.2 变量声明 18
2.2.3 作用域 18
2.2.4 使用方式 19
2.3 C 的新增特性  20
2.3.1 输入/输出流  20
2.3.2 认识引用 21
2.3.3 const  26
2.3.4 函数的默认参数 27
2.3.5 初用内联函数 28
2.3.6 函数重载实践 29
2.3.7 强制类型转换 33
2.3.8 简述string类型  34
2.3.9 new和delete的应用 35
2.3.10 巧用bool类型  37
第3章 类和对象  39
3.1 面向对象的思想 39
3.1.1 面向对象的基础思想 39
3.1.2 类的概念 40
3.1.3 C 的四大特性  40
3.1.4 面向对象软件的开发步骤 41
3.2 类的认知 42
3.2.1 特 性 42
3.2.2 由 来 42
3.2.3 声明方式 44
3.2.4 定义与使用 46
3.2.5 实例: 设计学生类  47
3.3 成员访问权限 48
3.3.1 权限的理解 48
3.3.2 权限的使用 49
3.3.3 公有和私有的应用 50
3.4 对 象 52
3.4.1 对象的定义 52
3.4.2 类与对象的区别 53
3.4.3 对象与成员的关系 54
3.4.4 对象的作用域、可见域和生存周期  54
3.4.5 学生类对象使用演示 55
3.5 探索成员函数 55
3.5.1 定义位置 55
3.5.2 分 类 56
3.5.3 普通成员函数 56
3.5.4 基础分类 59
3.5.5 命 名 60
3.5.6 实践: 设计圆类  60
3.6 this指针 62
3.6.1 了解this指针  63
3.6.2 使用要点 64
3.7 特殊成员函数之普通构造函数 65
3.7.1 引入构造函数 65
3.7.2 普通构造函数的格式 65
3.7.3 作 用 66
3.7.4 使用技巧 67
3.7.5 特 性 68
3.7.6 注意事项 70
3.7.7 默认构造函数 71
3.7.8 数据成员初始化方案 73
3.8 特殊成员函数之析构函数 76
3.8.1 定 义 76
3.8.2 显式调用析构函数 78
3.8.3 使用技巧 79
3.9 特殊成员函数之复制构造函数 82
3.9.1 格 式 82
3.9.2 说 明 82
3.9.3 默认复制构造函数的弊端 84
3.9.4 对比构造函数 86
3.9.5 临时对象的创建 87
3.9.6 特殊成员函数大实践 89
第4章 类的特殊成员  92
4.1 特殊数据成员初始化方案 92
4.1.1 只读成员 92
4.1.2 引用成员 95
4.1.3 类对象成员 97
4.1.4 静态成员  102
4.2 特殊成员函数  103
4.2.1 const成员函数的使用方法 104
4.2.2 静态成员函数的使用方法  106
4.3 对象的组织  108
4.3.1 const对象及引用 108
4.3.2 指向对象的指针  109
4.3.3 对象的大小  110
4.3.4 再谈this指针  111
4.3.5 对象数组  112
4.3.6 对象链表  113
4.3.7 指针管理对象  114
4.4 小 结  115
第5章 类域和友元函数 116
5.1 类中各种作用域  116
5.1.1 浅谈作用域  116
5.1.2 作用域分类  116
5.2. 类 域 118
5.2.1 作用域与可见域  119
5.2.2 类名的覆盖  121
5.2.3 作用域的综合应用  122
5.3 对象的生存期、作用域和可见域 123
5.3.1 实例化规则  123
5.3.2 内存释放  125
5.3.3 delete与free的对比  126
5.4 友元函数  127
5.4.1 了解友元  127
5.4.2 非成员函数的实现  127
5.4.3 成员函数的实现  129
5.4.4 友元的重载  130
5.4.5 友元类的使用技巧  132
5.4.6 友元的注意事项  134
5.4.7 实践: 友元管理学生信息  134
5.5 小 结  136
第6章 运算符重载、类型转换和重载函数选择规则  137
6.1 运算符重载  137
6.1.1 运算符重载介绍  137
6.1.2 运算符重载规则  138
6.1.3 运算符重载技巧  139
6.1.4 运算符典型重载实战  148
6.1.5 运算符重载小结  158
6.2 类型转换  159
6.2.1 理 解  159
6.2.2 C 中的类型转换  160
6.2.3 实践: 类与基本类型之间的转换  160
6.3 重载函数选择规则  162
6.4 小 结  163
第7章 继 承 164
7.1 继承的步骤  164
7.2 派生类的定义  165
7.2.1 格 式  165
7.2.2 对比派生方式  167
7.3 多基派生  169
7.3.1 使用方式  169
7.3.2 二义性问题  170
7.3.3 实践: 二义性问题解决方案  171
7.4 共同基类  172
7.4.1 共同基类的二义性  172
7.4.2 二义性问题的解决方案  173
7.4.3 实践: 测试虚基类  174
7.4.4 不同二义性的对比  175
7.5 派生类的构造函数和析构函数  176
7.5.1 单基派生类的构造函数  176
7.5.2 单基派生类的析构函数  178
7.5.3 多基派生类的构造函数和析构函数  179
7.5.4 虚基派生的构造函数和析构函数  181
7.6 继承与组合  183
7.6.1 继承不是万金油  184
7.6.2 实践: 组合实现五官类  184
7.7 继承间的相互转换  185
7.7.1 单基继承的类型适应  186
7.7.2 多基继承的类型适应  188
7.7.3 共同基类的类型适应  190
7.7.4 基类的类型适应  191
7.8 小 结  192
第8章 多 态 193
8.1 重载与多态的区分  193
8.2 多态的分类  194
8.2.1 类的多态  194
8.2.2 对象层次的多态  194
8.3 多态与虚函数  196
8.3.1 静态联编原则  196
8.3.2 动态联编原则  197
8.4 虚函数  200
8.4.1 声明与定义  200
8.4.2 工作原理  201
8.4.3 用 法  202
8.4.4 虚函数小结  202
8.4.5 实践: 虚函数辨别人员身份  202
8.5 不同方式访问虚函数  204
8.5.1 对象名访问  204
8.5.2 指针访问  206
8.5.3 引用访问  207
8.5.4 类内访问  208
8.5.5 在特殊成员函数中访问  209
8.6 虚函数表工作原理  211
8.7 纯虚函数与抽象类  212
8.7.1 纯虚函数的声明和定义  212
8.7.2 实践: 抽象类设计图形类  213
8.7.3 实践: 单件设计模式  216
8.7.4 实践: 虚析构函数  217
8.8 虚函数引入的二义性  220
8.8.1 多基派生二义性消除技巧  220
8.8.2 共同基类和虚继承的对比  222
8.9 重载、覆盖和隐藏 224
8.9.1 重载应用场景  224
8.9.2 覆盖应用场景  225
8.9.3 隐藏应用场景  226
8.10 小 结 227
第9章 string类  228
9.1 string类概述  228
9.1.1 对象的使用  228
9.1.2 对象构造实战  229
9.2 字符串的转换方案  230
9.2.1 利用c_str() 230
9.2.2 利用data() 231
9.2.3 利用copy() 231
9.3 string类字符串的输入/输出  232
9.4 string类字符串的赋值与清空  233
9.4.1 赋 值  233
9.4.2 清 空  234
9.5 string类字符串对象的元素操作  235
9.5.1 添加(追加) 235
9.5.2 插 入  236
9.5.3 删 除  237
9.5.4 存 取  238
9.5.5 查 找  239
9.5.6 大 小  242
9.6 string类字符串的比较和提取  243
9.6.1 比 较  243
9.6.2 提 取  244
第10章 模 板  246
10.1 模板概述 246
10.2 函数模板 247
10.2.1 函数模板的定义 247
10.2.2 函数模板的使用 249
10.2.3 实践: 隐式实例化  249
10.2.4 实践: 显式实例化  250
10.2.5 实践: 特化  251
10.2.6 重载的原则 253
10.2.7 优先级与执行顺序 254
10.2.8 实践: 函数模板实现计算  255
10.3 类模板 255
10.3.1 类模板的定义 256
10.3.2 隐式实例化 259
10.3.3 显式示例化 260
10.3.4 实践: 显式特化  260
10.3.5 实践: 部分特化  261
10.3.6 重载和优先级 264
10.4 模板的嵌套 264
10.4.1 实践: 函数成员模板  264
10.4.2 实践: 对象成员模板  265
10.4.3 实践: 模板作参数  267
10.5 小 结 268
第11章 异 常  269
11.1 实践: 调用abort()函数  269
11.2 实践: 返回错误代码  271
11.3 实践: 异常机制  272
11.4 将对象用作异常类型 276
11.5 异常、类和继承  282
11.6 注意事项 288
11.7 小 结 289
第12章 输入/输出流和文件接口 291
12.1 面对对象的标准库 291
12.1.1 浅谈标准库  292
12.1.2 国际字符的支持 293
12.1.3 I/O对象不可复制或赋值 294
12.2 条件状态 294
12.2.1 条件状态认知 294
12.2.2 条件状态成员 295
12.2.3 流状态的查询和控制  296
12.2.4 条件状态的访问  297
12.2.5 多种状态的处理  297
12.3 管理输出缓冲 297
12.3.1 输出缓冲区的刷新  298
12.3.2 unitbuf操作符  298
12.3.3 输入和输出绑定  299
12.4 文件输入/输出  299
12.4.1 简单的文件I/O  300
12.4.2 文件概述 300
12.4.3 实践: 文件的输入/输出(C) 301
12.4.4 实践: 二进制文件的读/写  305
12.4.5 实践: 文件的定位  306
12.4.6 实践: 文件的输入/输出流 (C ) 307
12.5 string流  312
12.5.1 stringstream对象的使用  313
12.5.2 stringstream提供的转换和/或格式化  313
12.6 小 结 314
第13章 容 器  316
13.1 容器概述 316
13.2 浅谈STL容器和迭代器的原理  320
13.2.1 STL容器的原理  320
13.2.2 STL迭代器的原理  320
13.3 序列式容器 322
13.3.1 实践: 容器的创建和元素的访问  323
13.3.2 所有容器的基本特征 325
13.3.3 实践: 容器中元素的插入和删除  325
13.3.4 浅谈容器 330
13.4 关联式容器 331
13.4.1 实践: multiset容器  332
13.4.2 实践: map容器 333
13.4.3 实践: multimap容器  334
13.5 堆栈容器 335
13.5.1 queue(队列) 和 stack(栈)  335
13.5.2 堆栈容器相关函数 336
第14章 STL泛型算法  339
14.1 算法概述 339
14.2 容器相关算法 340
14.2.1 初窥算法 340
14.2.2 只读算法 341
14.3 有关容器算法的应用 343
14.3.1 写容器元素算法的应用 343
14.3.2 巧用容器元素重新排序的算法  345
14.4 迭代器 349
14.4.1 插入迭代器 349
14.4.2 iostream迭代器 350
14.4.3 流迭代器的定义 351
14.4.4 反向迭代器 355
14.4.5 const迭代器  357
14.4.6 五种迭代器  357
14.5 泛型算法的结构 359
14.5.1 算法的形参模式 359
14.5.2 算法的命名规范 360
14.6 容器特有的算法 361
14.7 小 结 363
第15章 简述STL算法  364
15.1 查找对象的算法 364
15.1.1 简单查找算法 364
15.1.2 查找许多值中的一个的算法 365
15.1.3 查找子序列的算法 365
15.2 其他只读算法 366
15.3 二分查找算法 367
15.4 写容器元素的算法 367
15.4.1 只写元素不读元素的算法 368
15.4.2 使用输入迭代器写元素的算法 368
15.4.3 使用前向迭代器写元素的算法 368
15.4.4 使用双向迭代器写元素的算法 369
15.5 划分与排序算法 369
15.5.1 划分算法 370
15.5.2 排序算法 370
15.6 通用程序排序操作 371
15.6.1 使用前向迭代器的重新排序算法 371
15.6.2 使用双向迭代器的重新排序算法 372
15.6.3 写至输出迭代器的重新排序算法 372
15.6.4 使用随机访问迭代器的重新排序算法 373
15.7 排序算法 373
15.8 有序序列的集合算法 374
15.9 最大值和最小值 374
15.10 算术算法  375
附录A VS2019安装教程  377
A.1 安装.net framework 377
A.2 VS2019的安装与配置  379
A.3 新建C/C 项目  388
附录B VS2019代码调试  399
附录C EasyX库  404
C.1 基本说明  404
C.2 绘图语句  404
C.2.1 常用的绘图语句  404
C.2.2 设置颜色  405
C.2.3 延时函数  406
C.3 结合流程控制语句来绘图  407
C.4 数学知识在绘图中的运用  412
C.5 实现简单动画  413
C.6 位运算和绘图的关系  414
C.6.1 位运算的运算法则  414
C.6.2 位运算的应用  415
附录D C 常见错误分析  419
参考文献

本目录推荐