注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件与程序设计C/C++及其相关标准C++编程宝典

标准C++编程宝典

标准C++编程宝典

定 价:¥69.00

作 者: (美)Raphael Pender,苏剑等编著
出版社: 电子工业出版社
丛编项: 计算机“宝典”丛书
标 签: C++

ISBN: 9787121006784 出版时间: 2005-01-01 包装: 胶版纸
开本: 26cm+光盘1片 页数: 594 字数:  

内容简介

  本书特色:·全方位领略C++的强大功能,轻松掌握所有相关知识;·通过由浅入深、由易到难的典型实例,快速精通C++编程;·运用C++强大灵活的类机制编写一流的面向对象程序·利用标准C++库进行简单、高效的应用程序开发。C++内容丰富、功能强大,是全世界专业编程人员的首选语言。本书内容全面、实例典型,且自成体系,是C++语言的完整教程。标准C++是C++的国际性标准版本,本书以标准为基础,对C++进行了全面介绍。本书从最基本的内容讲起,对C++的强大功能进行了详细介绍;运用C++的最新功能,详细论述了面向对象编程的思想;同时,还介绍了C++和C的不同之处。配上自成体系,是C++语言的完整教程,不要求读者预先掌握C语言。本书针对那些比较高深难懂的内容也做了深入浅出的介绍,比如模板(包括函数模版、类模版和标准模板库)、名字空间以及守行时类型信息(RTTI)等,这些功能对于开发大型复杂系统的程序设计人员来说是非常重要的。因此,无论是新手还是有经验的程序员,都可以从本书获取所需要的知识。本书内容综合、全面,叙述流畅、清晰,实例典型、丰富,主要针对那些既不懂C也不懂C++、但又希望学习C++的程序员,是一本从门入到提高的经典书籍。

作者简介

暂缺《标准C++编程宝典》作者简介

图书目录

第1部分 C++语言
第1章 C++语言概述
1.1 C语言和C++语言的历史
1.2 C与C++的比较
1.3 C++简述
1.4 main()函数
1.5 小结
第2章 编写简单的C++程序
2.1 学习编写第一个程序
2.1.1 #include指令
2.1.2 空行
2.1.3 main()函数声明
2.1.4 main()函数的语句块
2.1.5 源代码注释
2.1.6 控制台输出
2.1.7 return语句
2.1.8 语句块的结束
2.2 标识符
2.3 关键字
2.4 标准输出流
2.5 变量
2.5.1 布尔型变量
2.5.2 字符型变量
2.5.3 wchar_t型变量
2.5.4 整型变量
2.5.5 浮点型变量
2.6 常量
2.6.1 字符型常量
2.6.2 转义字符
2.6.3 整型常量
2.6.4 浮点型常量
2.6.5 地址常量
2.6.6 字符串常量
2.7 表达式
2.8 赋值语句
2.9 用逗号分隔的声明语句
2.10 表达式中的运算符
2.10.1 算术运算符
2.10.2 逻辑运算符
2.10.3 位逻辑运算符
2.10.4 位移运算符
2.10.5 关系运算符
2.10.6 自增运算符和自减运算符
2.10.7 赋值运算符
2.10.8 复合赋值运算符
2.10.9 条件运算符
2.10.10 逗号运算符
2.11 运算符的优先级与结合性
2.11.1 结合性
2.11.2 优先级
2.12 表达式不参加运算的情况
2.13 初始化
2.14 类型转换
2.15 控制台输出与输出
2.15.1 标准输出流
2.15.2 格式化输出
2.15.3 标准错误流
2.15.4 标准输入流
2.16 小结
第3章 函数
3.1 函数
3.2 实际参数和形式参数
3.3 函数原型
3.3.1 无标识符的参数类型
3.3.2 一个典型的函数原型
3.3.3 返回类型为void的函数
3.3.4 参数列表为空的函数
3.3.5 参数列表可变的函数
3.3.6 既不带参数也没有返回值的函数
3.3.7 标准库函数的原型
3.3.8 不需要原型的函数
3.4 定义和调用函数
3.5 从涵数返回
3.6 函数的返回值
3.7 传递和使用参数
3.7.1 标识符的作用域
3.7.2 通过函数调用来进行初始化
3.7.3 初始化的顺序
3.7.4 具有多个参数的函数
3.7.5 用做实际参数的函数调用
3.7.6 值传递
3.7.7 实际参数和返回值的类型转换
3.8 形式参数
3.9 默认的函数参数
3.10 内联函数
3.11 递归
3.12 函数的重载
3.12.1 为不同的操作而重载
3.12.2 为不同的格式而重载
3.13 安全链接
3.14 链接说明
3.15 小结
第4章 C++的程序流程控制
4.1 语句块
4.1.1 语句块的嵌套深度
4.1.2 缩进风格
4.2 分支语句
4.2.1 if语句
4.2.2 if…else语句
4.2.3 else if语句
4.2.4 switch…case语句
4.2.5 在if语句的条件表达式中进行变量声明
4.3 循环语句
4.3.1 while语句
4.3.2 do…while语句
4.3.3 for语句
4.3.4 有for语句的条件表达式中声明变量
4.4 循环控制语句
4.4.1 break语句
4.4.2 continue语句
4.5 跳转语句:goto
4.5.1 goto语句的错误用法
4.5.2 C++语言的goto语句和C语言的goto语句的比较
4.5.3 改正错误的goto语句
4.5.4 是否应该使用goto语句
4.6 小结
第5章 数据类型
5.1 标识符的作用域
5.1.1 全局作用域
5.1.2 局部作用域
5.1.3 全局作用域解析符
5.1.4 文件作用域
5.1.5 变量的作用域和生存周期
5.2 存储类
5.2.1 自动存储类
5.2.2 静态存储类
5.2.3 外部存储类
5.2.4 寄存器存储类
5.3 初始化的默认值
5.4 类型修饰符
5.4.1 const类型
5.4.2 volatile修饰符
5.5 用户定义的类据类型
5.5.1 声明结构
5.5.2 定义结构变量
5.5.3 引用结构成员
5.5.4 初始化结构变量
5.5.5 结构的嵌套
5.5.6 向函数传递结构和从函数返回结构
5.6 联合数据类型
5.6.1 初始化联合
5.6.2 匿名联合
5.6.3 枚举常量
5.7 数组
5.7.1 声明数组
5.7.2 利用下标访问数组元素
5.7.3 初始化数组
5.7.4 结构数组
5.7.5 多维数组
5.7.6 字符型数组:一个特例
5.8 小结
第6章 地址、指针和引用型变量
6.1 地址和指针
6.1.1 指向内部数据类型的指针
6.1.2 指针的算术运算
6.1.3 指针和数组的关系
6.1.4 指向结构的指针
6.1.5 作为函数参数的指针
6.1.6 以地址作为函数的反回值
6.1.7 指向函数的指针
6.1.8 指向指针的指针
6.1.9 指向指针数组的指针
6.1.10 指向const型变量的指针
6.1.11 const型指针变量
6.1.12 void型指针
6.2 sizeof运算符
6.3 强制类型转换
6.3.1 C风格的强制类型转换
6.3.2 typedef
6.4 命令行参数:argc和argv
6.5 程序的内存结构
6.5.1 堆
6.5.2 new运算符和delete运算符
6.5.3 为大小固定的数组分配内存
6.5.4 为动态数组分配内存
6.5.5 堆耗尽时的处理
6.5.6 栈
6.6 递归
6.6.1 一个简单的递归函数
6.6.2 一修早用递归实现的计算器程序
6.7 引用型变量
6.7.1 引用是一个别名
6.7.2 初始化引用
6.7.3 用引用来简化复杂的表示法
6.7.4 用做函数形参的引用
6.7.5 以引用方式调用函数
6.7.6 const型引用形参
6.7.7 作为函数返回值的引用
6.7.8 以const型引用作为返回值
6.7.9 返回指向自变量的引用
6.7.10 引用和指针
6.8 小结
第7章 库函数
7.1 <cassert>头文件
7.2 <cctype>头文件
7.3 <cerrno>头文件
7.4 <cmath>头文件
7.5 <csetjmp>头文件
7.6 <cstdarg>头文件
7.7 <cstdio>头文件
7.8 <cstdlib>头文件
7.8.1 数字函数
7.8.2 内存管理函数
7.8.3 系统函数
7.8.4 随机数发生器函数
7.9 <cstring>头文件
7.10 <ctime>头文件
7.11 小结
第8章 预处理程序
8.1 预处理指令
8.2 包含文件
8.3 宏
8.3.1 #defing预处理指令
8.3.2 带参数的#defing预处理指令
8.3.3 格式和对齐
8.3.4 #字符串化运算符
8.3.5 ##符号连接运算符
8.3.6 #undef预处理指令
8.4 条件编译指令
8.4.1 #if预处理指令
8.4.2 #endif预处理指令
8.4.3 #if defined预处理指令
8.4.4 #ifdef#ifndef预处理指令
8.4.5 #else预处理指令
8.4.6 #elif预处理指令
8.4.7 #error预处理指令
8.5 其他预处理指令
8.5.1 #line预处理指令
8.5.2 #pragma预处理指令
8.6 小结
第9章 类与结构
9.1 C++的类
9.2 数据类型的属性
9.2.1 数据表示
9.2.2 实现
9.2.3 行为
9.2.4 接口
9.3 用户定义的数据类型
9.3.1 抽象
9.3.2 对象是什么
9.3.3 数据抽象和面向过程编程
9.3.4 数据抽象和封装
9.4 带有函数的结构
9.4.1 向结构添加函数
9.4.2 同一结构的多个实例
9.4.3 具有相同名称函数的不同结构
9.5 访问控制符
9.6 是滞应该使用面向过程编程
9.7 结构和类的比较
9.8 联合
9.9 小结
第10章 函数模板
10.1 函数模板基础知识
10.2 函数的定制
10.3 利用模板进行排序
10.4 小结
第二部分 使用类
第11章 C++类
11.1 设计类
11.1.1 对类进行声明
11.1.2 类成员
11.1.3 类成员的可见性
11.1.4 类的数据成员
11.1.5 初始化类对象
11.1.6 类的成员函数
11.1.7 面向对象的类的设计
11.1.8 类对象作用域
11.1.9 内联函数
11.2 构造函数
11.2.1 具有默认参数的构造函数
11.2.2 默认构造函数
11.2.3 重载构造函数
11.3 板构函数
11.4 类的转换
11.4.1 转换函数
11.4.2 对类进行转换
11.4.3 调用转换函数
11.4.4 转换发生的情形
11.4.5 显式构造函数
11.4.6 表达式中的转换
11.5 私有数据成员
11.5.1 取值成员函数和赋值成员函数
11.5.2 常量成员函数
11.5.3 经过改进的成员转换函数
11.6 友元
11.6.1 友元类
11.6.2 隐式构造函数
11.6.3 预引用
11.6.4 显式友元预引用
11.6.5 友元函数
11.6.6 匿名对象
11.6.7 非类成员的友元函数
11.7 析构函数
11.8 重载赋值运算符函数
11.9 this指针
11.9.1 用this指针作为返回值
11.9.2 在链表中使用this指针
11.10 类对象数组
11.10.1 类对象数组和默认构造函数
11.10.2 类对象数组和析构函数
11.11 静态成员
11.11.1 静态数据成员
11.11.2 静态成员函数
11.11.3 公有静态成员
11.12 类和堆
11.12.1 构造函数和new运算符、析构函数和delete运算符
11.12.2 堆和类数组
11.12.3 在类内部重载new和delete运算符
11.12.4 异常检测
11.12.5 重载new和delete运算符函数中的异常处理
11.12.6 重载new[]和delete[]运算符
11.13 复制构造函数
11.14 类中的引用
11.15 构造函数的参数初始化表
11.16 关于const修饰符的简单说明
11.17 可变数据成员
11.18 对类的源文件和目标文件的管理
11.18.1 头文件中的类声明
11.18.2 库中的类成员函数
11.19 小结
第12章 运算符重载
12.1 重载运算符的时机
12.2 重载运算符举例
12.3 重载运算符的规则
12.4 双目算术运算符
12.5 类成员运算符函数
12.6 非类成员运算符函数
12.7 关系运算符
12.8 其他赋值运算符
12.9 自增运算符和自减运算符
12.10 单目正和单目负运算符
12.11 下标运算符
12.12 成员指针运算符
12.13 小结
第13章 类继承
13.1 继承
13.2 进地继承的原因
13.3 设计定制的数据抽象类
13.3.1 基类
13.3.2 旨在提高效率的设计
13.3.3 单一继承
13.3.4 派生类
13.3.5 受保护成员
13.3.6 派生成员和定制成员
13.3.7 公有基类和私有基类
13.3.8 基类和派生类的构造函数
13.3.9 定制新的成员函数
13.3.10 通过重定义基类在员函数进行定制
13.3.11 编写程序
13.3.12 用于基类和派生类的作用域运算符
13.3.13 多个派生类
13.3.14 第二个派生类
13.3.15 使用基类和两个派生类
13.3.16 派生类之间的关系
13.3.17 从派生类派生出来的类
13.4 问题域类层次结构的设计
13.4.1 C++与纯面向对象有设计
13.4.2 更多的数据抽象
13.4.3 重载《和》运算符
13.4.4 SSN和Money类
13.4.5 包含头文件
13.4.6 C++的标准字符串类
13.5 Person: 基类
13.5.1 枚举数据类型
13.5.2 虚函数
13.5.3 抽象基类: 纯虚函数
13.5.4 两种数据显示方式
13.6 派生类
13.6.1 Employee类
13.6.2 函数重定义
13.6.3 WagedEmployee类
13.6.4 SalariedEmployee类
13.6.5 Contractor类
13.6.6 构造目标代码库
13.6.7 问题域类层次结构
13.6.8 通过引用调用虚函数
13.6.9 通过引用调用非虚函数
13.6.10 调用重定义的虚函数
13.6.11 没有被派生类重定义的虚函数
13.6.12 虚析构函数
13.6.13 应该将哪些成员函数定义为虚函数
13.7 多态性
13.8 小结
第14章 多重继承
14.1 多个基类
14.1.1 多重继承中的构造函数执行
14.1.2 多重继承中的板构函数执行
14.2 细化资产系统设计
14.3 对多重继承中的成员进行重定义
14.4 多重继承中的二义性问题
14.4.1 具有二义性的成员函数
14.4.2 具有二我性的数据成员
14.4.3 在设计时解决二义性问题
14.4.4 不可避免的二义性问题
14.5 虚基类
14.6 实现所设计的类层次结构
14.6.1 DisplayObject类
14.6.2 Vehicle类
14.6.3 Property类
14.6.4 Asset类和Expense类
14.6.5 Computer类和Pencils类
14.6.6 CompanyCar类和LeaseCar类
14.6.7 应用程序
14.7 回顾
14.8 小结
第15章 类模板
15.1 基础知识
15.2 声明类模板的多个对象
15.3 调用类模板的成员函数
15.4 声明多个参数
15.5 有界数组类模板
15.6 何时使用类模板
15.7 链表模板
15.7.1 整型链表模板
15.7.2 日期链表模板
15.8 模板的定制
15.8.1 类模板的定制
15.8.2 模板成员函数的定制
15.8.3 模板部分定制
15.9 默认的类模板参数
15.10 小结
第16章 面向对象程序设计
16.1 基础知识
16.2 过程化程序设计
16.3 面向对象程序设计
16.3.1 面向对象的程序
16.3.2 对象
16.3.3 抽象
16.3.4 封装
16.3.5 方法和消息
16.3.6 成员函数
16.3.7 继承
16.3.8 类的关系
16.3.9 多态性
16.4 小结
第3部分 标准C++库
第17章 标准C++库简介
17.1 std::string类
17.1.1 构造字符串
17.1.2 对字符串进行赋值
17.1.3 连接字符串
17.1.4 字符串的下标
17.1.5 比较字符串
17.1.6 子串
17.1.7 搜索字符串
17.1.8 字符串操作
17.2 输入/输出流
17.2.1 流类
17.2.2 缓冲输出
17.2.3 格式化输出
17.2.4 文件输入/输出
17.3 std::complex类
17.4 标准模板库
17.5 标准异常
17.6 小结
第18章 格式化iostream类和stringstream类
18.1 格式化输出
18.2 操纵算子、格式化标志和成员函数
18.2.1 std::ios::width()函数
18.2.2 std::setw操纵算子
18.2.3 std::ios::fill()函数
18.2.4 输出对齐
18.2.5 setprecision操纵算子
18.2.6 科学记数法和定点记数法
18.2.7 std::ios::setf()和std::ios::unsetf()函数
18.2.8 格式化标志
18.2.9 格式化操纵算子
18.2.10 格式化函数
18.3 小结
第19章 文件输入/输出流
19.1 文件流类的层次结构
19.2 std::ofstream类
19.3 std::ifstream类
19.3.1 读取文件直至文件结束
19.3.2 在文件中定位
19.3.3 读取和写入流文件
19.3.4 建立和解除文件与流的关联
19.4 二进制文件与文本文件
19.5 std::fstream类
19.6 小结
第4部分 标准模板库
第20章 标准模板库概述
20.1 需要STL的原因
20.2 STL程序设计模型
20.2.1 序列
20.2.2 容器适配器
20.2.3 关联式容器
20.2.4 迭代器
20.2.5 算法
20.2.6 胃词
20.2.7 分配器
20.3 小结
第21章 序列
21.1 序列式容器概述
21.2 向量类模板
21.2.1 插入向量元素
21.2.2 删除向量元素
21.2.3 比较向量
21.2.4 向量的成员函数
21.3 双端队列类模板
21.3.1 向双端队列插入元素
21.3.2 删除双端队列中的元素
21.3.3 比较双端队列
21.3.4 双端队列的成员函数
21.4 链表类模板
21.4.1 插入链表元素
21.4.2 删除链表元素
21.4.3 比较链表
21.4.4 链表的成员函数
21.5 std::stack容器适配器
21.6 std::queue容器适配器
21.7 std::priority_queue容器适配器
21.8 小结
第22章 关联式容
22.1 关联式容器简介
22.2 std::set类模板
22.2.1 向集合中插入元素
22.2.2 从集合中删除元素
22.2.3 在集合中查找元素
22.2.4 对集合进行比较
22.2.5 集合的成员函数
22.3 std::multiset类模板
22.3.1 向多重集合中插入元素
22.3.2 从多重集合中删除元素
22.3.3 在多重集合中查找元素
22.3.4 对多重集合进行比较
22.3.5 多重集合的成员函数
22.4 std::map类模板
22.4.1 向映射中插入元素
22.4.2 从映射中删除元素
22.4.3 在映射中查找元素
22.4.4 对映射进行比较
22.4.5 映射的成员函数
22.5 std::multimap类模板
22.5.1 向多重映射中插入元素
22.5.2 从多重映射中删除元素
22.5.3 在多重映射中查找元素
22.5.4 对多重映射进行比较
22.5.5 多重映射的成员函数
22.6 std::bitset类模板
22.6.1 在位集合中对位进行操作
22.6.2 在位集合中测试位的状态
22.6.3 对位集合进行比较
22.6.4 位集合的成员函数
22.7 用户定义的谓词
22.8 小结
第23章 通用算法
23.1 通用算法概述
23.2 非修正序列算法
23.3 修正序列算法
23.4 排序算法
23.5 数值算法
23.6 小结
第24章 迭代器
24.1 迭代器简介
24.2 输入迭代器
24.3 输出迭代器
24.4 前向迭代器
24.5 双向迭代器
24.6 随机访问迭代器
24.7 特殊用途的迭代器
24.7.1 流迭代器
24.7.2 迭代器适配器
24.8 小结
第25章 异常处理
25.1 C语言中的异常处理
25.2 C++语言中的异常处理
25.2.1 try块
25.2.2 catch异常处理模块
25.2.3 throw语句
25.2.4 try/throw/catch语句
25.2.5 异常指定
25.2.6 不名预见的异常
25.2.7 catch-all异常处理模块
25.2.8 从一个处理模块中抛出异常
25.2.9 未经捕获的异常
25.3 在抛出的异常中进行选择
25.4 异常及未释放的资源
25.5 一个改进的计算器程序
25.6 小结
第5部分 C++语言的高级主题
第26章 名字空间
26.1 名字空间简介
26.2 名字空间的成员
26.3 using namespace语句
26.4 定义名字空间
26.5 嵌套名字空间
26.6 无名名字空间
26.7 名字空间的别名
26.8 小结
第27章 新风格类型转换和运行时类型信息
27.1 新风格类型转换
27.1.1 dynamic_cast
27.1.2 static_cast
27.1.3 reinterpret_cast
27.1.4 const_cast
27.2 运行时类型信息
27.3 小结
第28章 区域表示
28.1 国际化元素
28.2 srd::locale类
28.2.1 标准侧面
28.2.2 默认区域表示与全局区域表示
28.3 创建区域表示对象
28.4 创建混合区域表示
28.5 流与区域表示
28.6 对侧面进行操作
28.7 小结
附录 关于光盘

本目录推荐