×
暂无评论
图文详情
  • ISBN:9787560656540
  • 装帧:平装-胶订
  • 册数:暂无
  • 重量:暂无
  • 开本:26cm
  • 页数:271页
  • 出版时间:2020-05-01
  • 条形码:9787560656540 ; 978-7-5606-5654-0

本书特色

C 程序设计语言一直是主流程序设计语言之一,它以面向过程的C语言为基础,主要支持面向对象程序设计,同时也支持泛型程序设计。本书针对已具有C语言程序设计基础的读者而编写,所有内容遵循C 11标准。全书通过单链表、简单集合类、链表实现的集合类、字符串类、各类物体面积求和、链栈类模板、向量类模板等典型案例来讲授现代C 程序设计的原理和方法,让读者深入理解现代C 面向对象程序设计机制,学会设计结构合理、可读性好、效率高的现代C 程序。本书主要内容包括C 程序设计基础、类和对象、拷贝控制、运算符重载、继承和多态、模板、异常处理和智能指针以及C 标准模板库简介。
本书适合作为高等学校计算机科学与技术、软件工程等专业C 面向对象程序设计相关课程的教材,也可供具有C语言基础的C 语言爱好者和相关工程技术人员参考。

内容简介

本书以已具有C语言程序设计基础的读者为对象, 所有内容遵循C++11标准, 通过单链表、简单集合类、链表实现的集合类、字符串类、各类物体面积求和、链栈类模板、向量类模板等典型案例, 讲授现代C++程序设计的原理和方法, 让读者深入理解现代C++面向对象程序设计机制, 学会设计结构合理、可读性好、效率高的现代C++程序。

目录

第1章 C++程序设计基础 1 1.1 C++概述 1 1.1.1 C++简介 1 1.1.2 C++ 11内置数据类型 2 1.1.3 常量、变量和C++基本输入/输出 3 1.2 函数重载 5 1.3 内联函数 6 1.4 缺省参数值 6 1.5 作用域和生存期 7 1.6 栈和函数调用实现 8 1.7 引用 11 1.7.1 引用的概念 11 1.7.2 引用和参数传递 12 1.8 动态分配和释放内存 15 1.8.1 C++内存申请和释放 16 1.8.2 典型范例——顺时针旋转矩阵 17 1.9 链表处理 20 1.9.1 链表基础 20 1.9.2 典型范例——单链表构造、插入、显示、销毁 21 习题1 23 第2章 类和对象 27 2.1 栈和队列的简单应用 27 2.2 抽象、封装和信息隐蔽 30 2.2.1 抽象 30 2.2.2 封装和信息隐蔽 31 2.3 类声明和类实现 31 2.3.1 数据成员 32 2.3.2 函数成员 33 2.3.3 访问控制 34 2.3.4 对象的定义 35 2.3.5 构造函数 37 2.3.6 C++ 11初始化新机制 38 2.3.7 析构函数 39 2.4 对象数组和动态对象 39 2.4.1 对象数组 39 2.4.2 对象指针和动态生成对象 40 2.4.3 对象引用 41 2.4.4 this指针、类成员作用域和生存期 41 2.5 常用容器使用举例 42 2.5.1 向量vector 42 2.5.2 链表list 44 2.5.3 双端队列deque 45 2.5.4 字符串string 47 2.5.5 栈stack 48 2.5.6 队列queue 50 2.6 类的嵌套定义 51 2.6.1 类的嵌套定义简介 51 2.6.2 使用单链表实现的整型栈类 51 2.7 类类型的数据成员和hasa关系 55 2.7.1 类类型的数据成员和hasa关系介绍 55 2.7.2 点类、圆类以及它们的关系 55 2.8 典型范例——简单集合类 59 2.9 特殊机制 64 2.9.1 友元函数 64 2.9.2 友元类 67 2.9.3 静态数据成员 67 2.9.4 静态成员函数 69 *2.9.5 mutable和volatile 70 习题2 71 第3章 拷贝控制 76 3.1 对象的传递、复制和赋值 76 3.2 具有动态分配的类 77 3.2.1 拷贝构造 78 3.2.2 拷贝赋值 79 3.2.3 C++ 11移动构造 81 3.2.4 C++ 11移动赋值 82 3.2.5 std∷move应用 83 3.3 典型范例——链表表示的集合类实现 84 *3.4 链集合向量空间扩充探讨 89 习题3 91 第4章 运算符重载 94 4.1 成员运算符重载 94 4.2 友元运算符重载 96 4.3 常用运算符重载 98 4.4 不同类型对象间的转换 102 4.5 典型范例——字符串类的设计和实现 104 习题4 109 第5章 继承和多态 112 5.1 公有继承和isa关系 112 5.1.1 继承和派生 112 5.1.2 派生类定义 113 5.1.3 派生类访问控制 113 5.1.4 派生类样例 114 5.2 派生类对象的构造、析构 117 5.3 同名覆盖原则 118 5.4 赋值兼容原则 119 5.5 多态性和虚函数 121 5.5.1 多态性 121 5.5.2 虚函数 122 5.5.3 派生类对象的克隆 126 5.5.4 纯虚函数和抽象类 127 5.6 典型范例——各类物体面积求和 128 5.7 其他继承方式 131 5.7.1 私有继承和保护继承 131 5.7.2 继承与组合 133 5.8 多继承 133 5.8.1 多继承介绍 133 5.8.2 二义性问题解决办法 134 *5.8.3 虚继承 135 5.9 深度探索 140 5.9.1 派生类对象的内存分布 140 5.9.2 虚函数实现原理 145 *5.9.3 运行时类型识别RTTI和动态类型转换dynamic_cast 148 习题5 152 第6章 模板 155 6.1 函数模板 155 6.1.1 函数模板与模板函数 155 6.1.2 内联函数模板 158 6.1.3 函数模板重载 159 6.1.4 函数模板和函数 160 6.2 类模板 161 6.2.1 类模板与模板类 161 6.2.2 类模板定义和成员函数实现 162 6.2.3 内联成员函数、非类型参数、函数调用运算符重载 164 6.2.4 类模板名简化表示模板类 166 6.2.5 典型范例——链栈类模板的设计和实现 167 6.2.6 内嵌容器的栈类模板的设计和实现 172 6.3 类模板与静态成员 175 *6.4 类模板与友元 176 6.4.1 类模板的普通友元 176 6.4.2 普通类的友元模板 177 6.4.3 多对多关系的类模板和友元模板 177 6.4.4 一对一关系的类模板和友元模板 177 *6.5 继续前行 178 习题6 179 第7章 异常处理和智能指针 181 7.1 异常处理的基本思想 181 7.2 C++异常处理 182 7.2.1 异常的抛出 182 7.2.2 异常的捕获 183 7.2.3 异常的分类 183 7.2.4 异常的处理 186 *7.2.5 noexcept声明 186 7.3 标准库异常分类 188 7.4 C++ 11智能指针 190 7.4.1 异常与内存泄漏 190 7.4.2 RAII与智能指针 190 7.4.3 unique_ptr 193 7.4.4 shared_ptr 197 7.4.5 weak_ptr 201 7.5 典型范例——设计和实现向量类模板 206 *7.6 关于智能指针使用的进一步说明和异常安全性 211 7.6.1 关于智能指针使用的进一步说明 211 7.6.2 异常安全性 211 习题7 212 第8章 C++标准模板库简介 214 8.1 泛型编程和标准模板库 214 8.1.1 泛型编程的基本概念 214 8.1.2 标准模板库组成 216 8.2 常用容器简介 217 8.2.1 顺序容器 218 *8.2.2 关联容器 218 *8.2.3 无序关联容器 222 8.3 迭代器简介 226 8.4 函数对象简介 229 8.4.1 函数和函数对象 230 8.4.2 lambda表达式简介 231 8.5 STL常用算法简介 234 8.5.1 for_each 234 8.5.2 count和count_if 235 8.5.3 find和find_if 237 8.5.4 sort 239 8.5.5 transform 241 8.5.6 set_union、set_intersection和set_difference 242 习题8 248 附录A C++运算符优先级、结合性和可重载性 249 附录B STL常用容器的常用接口介绍 251 参考文献 271
展开全部

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航