注册 登录 进入教材巡展
#

出版时间:2026-04

出版社:电子工业出版社

以下为《面向对象程序设计(C++)》的配套数字资源,这些资源在您购买图书后将免费附送给您:
  • 电子工业出版社
  • 9787121525698
  • 1-1
  • 16开
  • 2026-04
  • 468
  • 工学
  • 计算机类
  • 计算机科学与技术
  • 本科 研究生及以上
内容简介
全书分为10章,前8章内容涵盖C++的核心概念与高级特性,核心概念部分阐述面向对象概念,包括封装、继承、多态、友元、C++模板及泛型编程,高级特性部分则涉及运算符重载、输入/输出流、异常处理、标准模板库(STL)等。第9章介绍经典设计模式,第10章介绍C++新特性。本书内容将理论基础与实践案例相结合,其中的代码均在C++11和C++20环境下调试通过,旨在帮助读者将所学知识转化为实际编程能力。每章后以二维码形式给出习题及解答。 本书可以作为C语言的进阶教材,专为高等院校计算机专业高级程序设计课程编写,不仅适合具备程序设计基础的学生学习,也可供有一定编程经验的开发人员参考。
目录
第1章 C++基本语法 1
1.1 输入与输出操作 1
1.1.1 输入与输出 1
1.1.2 字符串的输入与输出 3
1.2 bool类型 4
1.2.1 bool类型的声明和初始化 4
1.2.2 bool类型的运算符和表达式 5
1.2.3 bool类型的隐式转换 5
1.3 引用机制 6
1.3.1 引用的定义和特性 6
1.3.2 引用与指针的区别 6
1.4 函数重载 8
1.5 默认参数 9
1.6 for循环 11
1.6.1 传统for循环 11
1.6.2 范围for循环 12
1.7 string类型 12
1.8 const关键字 16
1.8.1 常量指针 16
1.8.2 指针常量 16
1.8.3 指向常量的常量指针 16
1.9 动态内存管理 17
1.9.1 内存空间 17
1.9.2 malloc()和free() 18
1.9.3 new和delete运算符 18
第2章 封装与继承 22
2.1 封装 22
2.1.1 类和对象 22
2.1.2 封装的特点 24
2.1.3 成员属性和成员函数 26
2.1.4 struct和class的区别 35
2.1.5 内部类 37
2.1.6 对象的存储结构和this指针 38
2.2 构造和析构 40
2.2.1 构造函数和析构函数 40
2.2.2 拷贝构造函数 44
2.2.3 浅拷贝和深拷贝 46
2.2.4 初始化列表 48
2.3 继承 49
2.3.1 继承的基本语法 50
2.3.2 继承方式 51
2.3.3 重写 54
2.3.4 继承中的构造函数和析构函数 56
2.3.5 多继承 58
2.3.6 虚基类和虚继承 64
第3章 多态与友元 67
3.1 多态 67
3.1.1 多态的基本概念 67
3.1.2 虚函数和抽象类 71
3.1.3 虚析构函数和纯虚析构函数 78
3.2 友元 80
3.2.1 友元函数 80
3.2.2 友元类 81
3.2.3 成员函数作为友元函数 82
第4章 C++模板和泛型编程 84
4.1 模板的概念 84
4.2 函数模板 84
4.2.1 函数模板的语法 84
4.2.2 显式实例化与隐式实例化 85
4.2.3 值传参和引用传参 86
4.2.4 默认模板参数 87
4.3 类模板 87
4.3.1 类模板的语法 87
4.3.2 类模板作为函数参数 88
4.3.3 成员函数的类外实现 91
4.3.4 类模板与继承 91
4.4 模板特化 94
4.4.1 完全特化 94
4.4.2 偏特化 95
4.5 标准类模板 97
4.5.1 vector 97
4.5.2 array 102
4.5.3 数组与类模板的比较 107
第5章 运算符重载 108
5.1 运算符重载概述 108
5.2 双目运算符的重载 110
5.2.1 加法运算符的重载 110
5.2.2 减法运算符的重载 111
5.2.3 赋值运算符的重载 111
5.2.4 乘法和除法运算符的重载 112
5.2.5 比较运算符的重载 113
5.3 单目运算符的重载 114
5.3.1 前置和后置自增运算符的重载 114
5.3.2 前置和后置自减运算符的重载 116
5.3.3 逻辑非和按位取反运算符的重载 117
5.3.4 正号和负号运算符的重载 118
5.4 运算符重载的三种方法 119
5.4.1 用成员函数重载运算符 119
5.4.2 用友元函数重载运算符 120
5.4.3 用全局函数重载运算符 121
5.4.4 三种方法的对比 121
5.5 特殊运算符的重载 121
5.5.1 >>和<<运算符的重载 122
5.5.2 类型转换运算符的重载 123
5.5.3 []运算符的重载 123
第6章 C++输入/输出流和文件读/写 125
6.1 标准I/O库 125
6.2 标准输入/输出流 125
6.3 文件流 127
6.4 条件状态 131
6.5 字符串流 133
第7章 异常处理 137
7.1 异常处理的语法 137
7.2 标准异常 138
7.2.1 exception类 138
7.2.2 runtime_error类 138
7.2.3 logic_error类 139
7.2.4 其他标准异常类 139
7.3 异常对象 141
7.3.1 异常对象的类型 141
7.3.2 异常对象的生命周期 142
7.3.3 异常传播与栈展开 142
7.4 异常处理的注意事项 143
7.4.1 异常安全性 143
7.4.2 异常处理的开销 144
7.4.3 避免空catch块 146
7.4.4 异常处理策略的选择 146
第8章 标准模板库 150
8.1 容器 150
8.1.1 容器的分类 150
8.1.2 容器的使用 151
8.2 迭代器 166
8.2.1 迭代器的概念 166
8.2.2 迭代器的类型 167
8.2.3 迭代器的解引用 172
8.3 STL算法 175
8.3.1 算法的分类 176
8.3.2 典型算法的实现函数 176
8.4 函数对象 185
8.4.1 基本概念 185
8.4.2 谓词 187
8.4.3 内建函数对象 188
第9章 经典设计模式 189
9.1 设计模式简介 189
9.2 创建型模式 190
9.2.1 单例模式 191
9.2.2 工厂方法模式和抽象工厂模式 198
9.2.3 原型模式 204
9.3 结构型模式 207
9.3.1 适配器模式 207
9.3.2 代理模式 212
9.3.3 组合模式 214
9.4 行为型模式 218
9.4.1 模板方法模式 218
9.4.2 解释器模式 220
9.4.3 策略模式 224
9.4.4 命令模式 226
9.4.5 观察者模式 230
9.5 学习与实践建议 233
第10章 C++新特性 234
10.1 C++11新特性 234
10.1.1 初始化列表 234
10.1.2 Lambda表达式 237
10.1.3 声明 238
10.1.4 区间迭代 243
10.1.5 initializer_list 244
10.1.6 回调函数 246
10.2 C++20新特性 247
10.2.1 模块 247
10.2.2 协程 248
10.2.3 概念 254
10.2.4 三向比较运算符 255
10.2.5 范围 256
10.2.6 数字分隔符 257
10.2.7 字符串格式化 258
10.3 C++23新特性 259
10.3.1 if consteval 259
10.3.2 多维下标运算符 260
10.3.3 静态