目 录
译者序
前 言
第一部分 介绍C++
第1章入门
1.1为什么C++是最佳选择
1.1.1过程化、结构化和面向对象的程序
设计
1.1.2C++和面向对象的程序
1.1.3C++是如何发展起来的
1.14C++不仅仅是更好的C语言
1.1.5是否应当首先学习C语言
1.2为编程作准备
1.3区分C++、ANSIC++、Windows和其他
领域的一些概念
1.4编译和链接源代码
1.4.1在集成开发环境中进行编译
1.4.2链接程序
1.5开发过程
1.6HELLO.CPP——第一个C++程序
1.7编译时出错
1.8小结
1.9问与答
第2章 C++程序的构成
2.1一个简单程序的构成
2.1.1逐个字符检查#Include语句
2.1.2逐行分析
2.2注释
2.2.1注释的类型
2.2.2使用注释
2.3功能
2.4小结
2.5问与答
第3章 变量与常量
3.1什么是变量
3.1.1分配内存空间
3.1.2整数的大小
3.1.3signed与unsigned
3.1.4基本变量类型
3.2定义 个变量
3.2.1区分大小写
3.2.2关键字
3.3一次说明多个变量
3.4给变量赋值
3.5typedef语句
3.6何时使用short和long
3.6.1无符号整数的溢出
3.6.2有符号整数的溢出
3.7常量
3.7.1数值常量
3.7.2符号常量
3.8枚举常量
3.9小结
3.10问与答
第4章 表达式与语句
4.1语句
4.1.1空白
4.1.2复合语句
4.2表达式
4.3运算符
4.3.1赋值运算符
4.3.2数学运算符
4.4组合使用赋值语句和数学运算符
4.5增量运算和减量运算
4.6优先级
4.7括号嵌套
4.8“真”与“假”的实质
4.9关系运算符
4.10if语句
4.10.1else子句
4.10.2高级if语句
4.11在嵌套if语句中使用花括号
4.12逻辑运算符
4.12.1逻辑与
4.12.2逻辑或
4.12.3逻辑非
4.13关系优先级
4.14深入讨论逻辑值“真”与“假”
4.15小结
4.16问与答
第5章 函数
5.1什么是函数
5.2说明并定义函数
5.2.1函数的说明
5.2.2函数的定义
5.3局部变量
54全局变量
5.5函数的语句
5.6函数的实参
5.7形参是局部变量
5.8返回值
5.9缺省形参
5.10功能的重载
5.10.1深入研究函数的机理
5.10.2栈与函数
5.11小结
5.12问与答
第二部分 类
第6章 基本类
6.1创建新类型
6.1.1什么是类型
6.1.2为什么要创建 个新类型
6.2类与成员
6.2.1类的说明
6.2.2有关命名的约定
6.2.3定义一个对象
6.2.4类与对象
6.3访问类的成员
6.4私有成员和公有成员
6.5类方法的实现
6.6构造函数和析构函数
6.6.1缺省构造函数
6.6.2编译程序提供的构造函数
6.7小结
6.8问与答
第7章 深入了解类
7.1const型成员函数
7.2接口与方法
7.3在何处放置类的说明以及方法的定义
7.4内联实现
7.5以其他的类作为数据成员的类
7.6小结
7.7问与答
第8章 高级程序流程控制
8.1循环
8.1.1goto语句——循环语句的起源
8.1.2为什么现在不使用goto语句
8.2while循环
8.2.1更加复杂的while语句
8.2.2continue和break
8.2.3while(1)循环
8.3do…while循环
8.4for循环
8.4.1高级for循环
8.4.2空的for循环
8.4.3循环嵌套
8.5switch语句
8.6小结
8.7问与答
第三部分 内存管理
第9章 指针
9.1什么是指针
9.1.1在一个指针中存储地址值
9.1.2指针名
9.1.3目标访问运算符
9.1.4指针、地址和变量
9.1.5使用指针处理数据
9.1.6检查地址值
9.2为什么使用指针
9.3栈和自由存储区
9.3.1new
9.3.2delete
9.3.3内存丢失
9.4小结
9.5问与答
第10章 高级指针
10.1在自由存储区内创建对象
10.2删除对象
10.3访问数据成员
10.4自由存储区中的成员数据
10.5this指针
10.6this指针的用途
10.7迷途指针或悬浮指针
10.8const型指针
10.8.1const型指针和const型成员函数
10.8.2const型this指针
10.9小结
10.10问与答
第11章 引用
11.1什么是引用
11.2说明一个引用
11.3对引用使用取址运算符
11.4什么可以被引用
11.5空指针和空引用
11.6通过引用传递的方式给函数传递实参
11.6.1使用指针使swap()函数正常工作
11.6.2使用引用实现swap()
11.7理解函数的域名和原型
11.8返回多个值
11.9小结
11.10 问与答
第12章 高级引用和指针
12.1使用引用传递的方式以提高效率
12.2使用引用代替指针
12.3如何确定使用引用还是指针
12.4不要返回一个非作用域中的目标对象的
引用
12.5返回一个在堆中的对象的引用
12.6指针的传递
12.7小结
12.8问与答
第四部分 功能强大的工具
第13章 高级函数
13.1重载成员函数
13.2使用缺省值
13.3在使用缺省值或重载函数之间选择
13.4缺省构造函数
13.5重载函数
13.6初始化对象
13.7复制构造函数
13.8小结
13.9问与答
第14章 运算符重载
14.1运算符重载
14.1.1定义 个增量函数
14.1.2重载后置运算符
14.1.3前置与后置的区别
14.1.4pperato+
14.1.5重载operator+
14.1.6运算符重载的限制
14.1.7何时需要重载
14.1.8operato=
14.2转换运算符
14.3小结
14.4问与答
第15章 数组
15.1什么是数组
15.2数组元素
15.3数组越界
15.4界桩错误
15.5初始化数组
15.6对象数组
15.7多维数组
15.8关于内存
15.9指针数组
15.10说明自由存储区中的数组
15.11指向数组的指针和指针数组
15.12指针与数组名
15.13删除自由存储区中的数组
15.14char型数组
15.15strcpy()和strnepy()
15.16串类
15.17小结
15.18问与答
第五部分 继承和多态
第16章 继承
16.1什么是继承
16.1.1继承与派生
16.1.2动物王国
16.1.3派生的语法
16.2私有访问权限和保护型访问权限
16.3构造函数和析构函数
16.4重置函数
16.4.1重载与重置
16.4.2隐藏基类方法
19.4学会使用面向对象的方式进行程序
设计
19.5小结
19.6问与答
第六部分 特别主题
第20章 特殊的类与函数
20.1静态成员数据
20.2静态成员函数
20.3包容
20.3.1访问被包容类的成员
20.3.2对被包容成员的选择性访问
20.3.3包容的开销
20.3.4值复制与引用复制
20.4友元类
21.7预定义宏
21.8小结
21.9问与答
高级主题
第22章 面向对象的分析和设计
22.1开发过程
22.2模拟一个报警系统
22.2.1概念表达
22.2.2分析需求
22.2.3高层设计和低层设计
22.2.4其他对象
22.2.5类的设计
22.2.6如何报警
22.2.7事件循环
22.3实例研究:PostMaster
22.3.1权衡并取舍
22.3.2功能分解并逐步求精
22.3.3信息格式
22.3.4最初的类的设计
22.3.5有根与无根的层次结构
22.3.6设计接口
22.3.7创建一个原型
22.3.880/80法则
22.3.9设计PostMasterMessage类
22.3.10应用程序接口
22.3.11分组进行
22.3.12继续进行设计
22.3.13使用驱动程序
22.4小结
22.5问与答
第23章 模板
23.1什么是模板
23.2参数化类型
23.3模板的定义
23.4使用模板项
23.5标准模板库
23.6小结
23.7问与答
第24章 异常和出错处理
24.1程序死区、错误和损坏的代码
24.2异常
24.3使用try语句块和catch语句块
24.3.1处理异常
24.3.2多于一个的catch语句
24.3.3通过引用传递和多态的方式
处理异常
24.4以下的步骤
24.5风格
24.5.1花括号
24.5.2过长的行
24.5.3switch语句
24.5.4程序文本
24.5.5标识符
24.5.6标识符的拼写和大写
24.5.7注释
24.5.8访问权限
24.5.9类的定义
24.5.10include文件
24.5.11 asset()
24.5.12const
24.6后记
24.6.1到哪里获得帮助和建议
24.6.2所需的读物
24.6.3杂志
24.6.4保持联系
第八部分 附 录
附录A 运算符优先级
附录BC++关键字