C++编程思想

出版社:机械工业出版社
出版日期:2000-01
ISBN:9787111071167
作者:埃克尔(美)
页数:421页

书籍目录

目 录
译者序
前言
第1章 对象的演化
1.1基本概念
1.1.1对象:特性十行为
1.1.2继承:类型关系
1.1.3多态性
1.1.4操作概念:OOP程序像什么
1.2为什么C++会成功
1.2.1较好的C
1.2.2采用渐进的学习方式
1.2.3运行效率
1.2.4系统更容易表达和理解
1.2.5“库”使你事半功倍
1.2.6错误处理
1.2.7大程序设计
1.3方法学介绍
1.3.1复杂性
1.3.2内部原则
1.3.3外部原则
1.3.4对象设计的五个阶段
1.3.5方法承诺什么
1.3.6方法应当提供什么
1.4起草:最小的方法
1.4.1前提
1.4.2高概念
1.4.3论述(treatment)
1.4.4结构化
1.4.5开发
1.4.6重写
1.4.7逻辑
1.5其他方法
1.5.1Booch
1.5.2责任驱动的设计(RDD)
1.5.3对象建模技术(OMT)
1.6为向OOP转变而采取的策略
1.6.1逐步进入OOP
1.6.2管理障碍
1.7小结
第2章 数据抽象
2.1声明与定义
2.2一个袖珍C库
2.3放在一起:项目创建工具
2.4什么是非正常
2.5基本对象
2.6什么是对象
2.7抽象数据类型
2.8对象细节
2.9头文件形式
2.10嵌套结构
2.11小结
2.12练习
第3章 隐藏实现
3.1设置限制
3.2C++的存取控制
3.3友元
3.3.1嵌套友元
3.3.2它是纯的吗
3.4对象布局
3.5类
3.5.1用存取控制来修改stash
3.5.2用存取控制来修改stack
3.6句柄类(handleclasses)
3.6.1可见的实现部分
3.6.2减少重复编译
3.7小结
3.8练习
第4章 初始化与清除
4.1用构造函数确保初始化
4.2用析构函数确保清除
4.3清除定义块
4.3.1for循环
4.3.2空间分配
4.4含有构造函数和析构函数的stash
4.5含有构造函数和析构函数的stack
4.6集合初始化
4.7缺省构造函数
4.8小结
4.9练习
第5章 函数重载与缺省参数
5.1范围分解
5.1.1用返回值重载
5.1.2安全类型连接
5.2重载的例子
5.3缺省参数
5.4小结
5.5练习
第6章 输入输出流介绍
6.1为什么要用输入输出流
6.2解决输入输出流问题
6.2.1预先了解操作符重载
6.2.2插入符与提取符
6.2.3通常用法
6.2.4面向行的输入
6.3文件输入输出流
6.4输入输出流缓冲
6.5在输入输出流中查找
6.6strstreams
6.6.1为用户分配的存储
6.6.2自动存储分配
6.7输出流格式化
6.7.1内部格式化数据
6.7.2例子
6.8格式化操纵算子
6.9建立操纵算子
6.10输入输出流实例
6.10.1代码生成
6.10.2一个简单的数据记录
6.11小结
6.12练习
第7章 常量
7.1值替代
7.1.1头文件里的const
7.1.2const的安全性
7.1.3集合
7.1.4与C语言的区别
7.2指针
7.2.1指向const的指针
7.2.2const指针
7.2.3赋值和类型检查
7.3函数参数和返回值
7.3.1传递const值
7.3.2返回const值
7.3.3传递和返回地址
7.4类
7.4.1类里的const和enum
7.4.2编译期间类里的常量
7.4.3const对象和成员函数
7.4.4只读存储能力
7.5可变的(volatile)
7.6小结
7.7练习
第8章 内联函数
8.1预处理器的缺陷
8.2内联函数
8.2.1类内部的内联函数
8.2.2存取函数
8.3内联函数和编译器
8.3.1局限性
8.3.2赋值顺序
8.3.3在构造函数和析构函数里隐藏行为
8.4减少混乱
8.5预处理器的特点
8.6改进的错误检查
8.7小结
8.8练习
第9章 命名控制
9.1来自C语言中的静态成员
9.1.1函数内部的静态变量
9.1.2控制连接
9.1.3其他的存储类型指定符
9.2名字空间
9.2.1产生一个名字空间
9.2.2使用名字空间
9.3C++中的静态成员
9.3.1定义静态数据成员的存储
9.3.2嵌套类和局部类
9.3.3静态成员函数
9.4静态初始化的依赖因素
9.5转换连接指定
9.6小结
9.7练习
第10章 引用和拷贝构造函数
10.1C++中的指针
10.2C+十中的引用
10.2.1函数中的引用
10.2.2参数传递准则
10.3拷贝构造函数
10.3.1传值方式传递和返回
10.3.2拷贝构造函数
10.3.3缺省拷贝构造函数
10.3.4拷贝构造函数方法的选择
10.4指向成员的指针(简称成员指针)
10.5小结
10.6练习
第11章 运算符重载
11.1警告和确信
11.2语法
11.3可重载的运算符
11.3.1一元运算符
11.3.2二元运算符
11.3.3参数和返回值
11.3.4与众不同的运算符
11.3.5不能重载的运算符
11.4非成员运算符
11.5重载赋值符
11.6自动类型转换
11.6.1构造函数转换
11.6.2运算符转换
11.6.3一个理想的例子:strings
11.6.4自动类型转换的缺陷
11.7小结
11.8练习
第12章 动态对象创建
12.1对象创建
12.1.1C从堆中获取存储单元的方法
12.1.2运算符new
12.1.3运算符delete
12.1.4一个简单的例子
12.1.5内存管理的开销
12.2重新设计前面的例子
12.2.1仅从堆中创建string类
12.2.2stash指针
12.2.3stack例子
12.3用于数组的new和delete
12.4用完内存
12.5重载new和de1ete
12.5.1重载全局new和delete
12.5.2为一个类重载new和delete
12.5.3为数组重载new和delete
12.5.4构造函数调用
12.5.5对象放置
12.6小结
12.7练习
第13章 继承和组合
13.1组合语法
13.2继承语法
13.3构造函数的初始化表达式表
13.3.1成员对象初始化
13.3.2在初始化表达式表中的内置类型
13.4组合和继承的联合
13.4.1构造函数和析构函数的次序
13.4.2名字隐藏
13.4.3非自动继承的函数
13.5组合与继承的选择
13.5.1子类型设置
13.5.2专门化
13.5.3私有继承
13.6保护
13.7多重继承
13.8渐增式开发
13.9向上映射
13.9.1为什么“向上映射”
13.9.2组合与继承
13.9.3指针和引用的向上映射
13.9.4危机
13.10小结
13.11练习
第14章 多态和虚函数
14.1向上映射
14.2问题
14.3虚函数
14.4C++如何实现晚捆绑
14.4.1存放类型信息
14.4.2对虚函数作图
14.4.3撩开面纱
14.4.4安装vpointer
14.4.5对象是不同的
14.5为什么需要虚函数
14.6抽象基类和纯虚函数
14.7继承和VTABLE
14.8虚函数和构造函数
14.8.1构造函数调用次序
14.8.2虚函数在构造函数中的行为
14.9析构函数和虚拟析构函数
14.10小结
14.11练习
第15章 模板和包容器类
15.1包容器和循环子
15.2模板综述
15.2.1C方法
15.2.2Smalltalk方法
15.2.3模板方法
15.3模板的语法
15.3.1非内联函数定义
15.3.2栈模板(thestackasatemplate)
15.3.3模板中的常量
15.4stash&stack模板
15.4.1所有权问题
15.4.2stash模板
15.4.3stack模板
15.5字符串和整型
15.5.1栈上的字符串
15.5.2整型
15.6向量
15.6.1“无穷”向量
15.6.2集合
15.6.3关联数组
15.7模板和继承
15.7.1设计和效率
15.7.2防止模板膨胀
15.8多态性和包容器
15.9包容器类型
15.10函数模板
15.10.1存储分配系统
15.10.2为tstack提供函数
15.10.3成员函数模板
15.11控制实例
15.12小结
15.13练习
第16章 多重继承
16.1概述
16.2子对象重叠
16.3向上映射的二义性
16.4虚基类
16.4.1“最晚辈派生”类和虚基初始化
16.4.2使用缺省构造函数向虚基“警告”
16.5开销
16.6向上映射
16.7避免MI
16.8修复接口
16.9小结
16.10练习
第17章 异常处理
17.1C语言的出错处理
17.2抛出异常
17.3异常捕获
17.3.1try块
17.3.2异常处理器
17.3.3异常规格说明
17.3.4更好的异常规格说明
17.3.5捕获所有异常
17.3.6异常的重新抛出
17.3.7未被捕获的异常
17.4清除
17.5构造函数
17.6异常匹配
17.7标准异常
17.8含有异常的程序设计
17.8.1何时避免异常
17.8.2异常的典型使用
17.9开销
17.10小结
17.11练习
第18章 运行时类型识别
18.1例子――shape
18.2什么是RTTI
18.3语法细节
18.3.1对于内部类型的typeid()
18.3.2产生合适的类型名字
18.3.3非多态类型
18.3.4映射到中间级
18.3.5void指针
18.3.6 用模板来使用RTTI
18.4引用
18.5多重继承
18.6合理使用RTTI
18.7RTTI的机制及花费
18.8创建我们自己的RTTI
18.9新的映射语法
18.9.1staticcast
18.9.2constcast
18.9.3reinterpret_cast
18.10小结
18.11练习
附录A 其他性能
附录B 编程准则
附录C 模拟虚构造函数


 C++编程思想下载 更多精彩书评



发布书评

 
 


精彩书评 (总计1条)

  •     对于计算机编程人员,就算截止到今天,能够很好地使用面向对象思想的人,也绝对不多,一是因为这个思想属于设计层面;另一个因为大家工作的层次都是面对函数,面对系统的机会很少。本书确实能让那些每天精通于函数的人人们豁然开朗,发现原来,面向对象真的是可以利用的一种很好的方法呀。希望你读完本书,能够开始逐渐走出面向过程的语言,进入虚函数的实际使用,进入对象的世界。

精彩短评 (总计42条)

  •     考得还好。。。
  •     think 类都很经典
  •     前6章不怎么样,后面还可以;特不喜欢这本书的例子,总是写的乱七八糟,条理一点都不清晰。
  •     我们得思考,为什么人家能写出这样nb的书,而我们的作者写的书那么垃圾...
  •     学习C++的好书!极力极力推荐认真看几遍!
  •     3
  •      大學時候看的,還沒看完就畢業搞.Net了,這本書翻譯的實在差強人意。有的時候雲裏霧裏的。
  •     拨云见日
  •     每个C++程序员都必须读的书!
  •     翻译有些问题,但是仍然值得一读,靠Bruce老兄的指引才领我入门
  •     比较难懂,感觉
  •     很久以前读过,C++从熟练到精通需要看的一本书
  •     感觉一般
  •     书中有几个闪光点,不过看了就忘了,好书,主要是作者写得好,看过了就忘记了,其实是看过了就吸收了,适合C++代码量10万行左右的人看(这个阶段看最有用,也比较快,不会遇到什么挫折)
  •     看的旧版 一个月时间
  •     没想象中那么好
  •     思想
  •     的确是一本思想上的书
  •     标记一下,为了这本床头的纪念品。
  •     没看完 以后有机会得好好再看遍
  •     也许是名声太大了吧,看过之后并没有想象中的好...
  •     面向对象编码书籍中,经典中的经典。
  •     c++变成死相第一卷
  •     写的没有吹的好!
  •     Eckel的Thinking in C++(机械工业
  •     本科的回忆
  •     最开始买的是中文版,后来连英文版也一起读了,呵呵
  •     经典名著 可以借此学习OOP思想
  •     容许我庸俗一下
  •     这是第一版,thing in系列的起始版本。
  •     买过这本书,一章一章的往后跳,感觉不知道说的是啥,我可是冲着他的名气兴奋的去买的,感觉讲的很多,具体说不出来是哪不好,有一感觉就是不实用,很多讲的太细,用的时候应该用不到,还是推荐《c++ prime》第四版,虽然适合有一定基础的,但讲的都是实际中经常用的,而不是讲一堆古怪的内容,《c++ 编程思想》看来要放进角落了,不过第二卷的还没看,不知道具体怎么样,但看标题都是实用的,它口号也是“实用编程技术”,看来第一卷确实没有强调“实用”二字,翻译也有问题,往往看一句话感觉看过去了,但不知道要说的是什么意思。显然之前听过的对这本书的评价是太过夸奖了,不知道原版怎么样。
  •     面向对象的工程意义大于科学意义。代码重用是C++的关键特征:继承和组合,及模板
  •     对于初学者比较适合
  •     被我最早扔掉的C++书籍,盛名之下,其实难副。
  •     C++编程思想
  •     反复读。
  •     还不错,不过有点不高不低的感觉。作为学习用书,显然应该看《C++ Primer》,深入学习应是《C++ Programming Languages》
  •     在 《游戏之旅》中 云风 推荐。
  •     英文原版是很好的,翻译不敢恭维
  •     和其它译作一样读起来诡异,但不可否认内容比较精华
  •     Minyi兄赠送,重读一部分。
  •     可以看这本入门。
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024