Posted on 2006-05-09 00:02
Harry 阅读(431)
评论(0) 编辑 收藏 引用 所属分类:
读书笔记
前言
1。本书讨论的是编程问题,讨论了
1)。为什么它是问题
2)。用C++解决编程问题所采用的方法
章节安排
1。对象的演化。讨论了
1)。面向对象程序设计思想;
2)。如何运用这一思想解决软件危机问题;
3)。将阐述采用这种语言的好处,提出如何转入C++世界的建议。
2。数据抽象。C++的根本思想:创建新数据类型的能力。通过如何将函数放入结构内部的简单过程而实现这一思想;可以看到如何具体地完成这样的过程和创建什么样的代码。
3。隐藏实现。把下层实现和客户程序员看到的接口隔离开。C++使用关键词class作为描述新数据类型的更奇特的方法。
4。初始化和清除。C++的构造函数使得程序员能保证他的新数据类型的变量(即类的对象)总是能被恰当地初始化;析构函数完成其的清除。
5。函数重载和缺省参数。复杂的项目可能会引进使用相同函数名的多个库,还可能会在同一个库中选择具有不同含义的相同名字。C++的函数重载使这一问题容易解决。重载允许当参数表不同时重用相同的函数名。缺省参数能自动地对某些缺省的参数提供缺省值。
6。输入输出流。I/O库更易使用、灵活,且更可扩充--可以让它和新类一起工作。
7。常量。const和volatile关键字。还说明const的含义在类的内部和外部有何不同;如何在类的内部创建编译时常量。
8。内联函数。内联函数具有预处理宏(省去了函数调用开支)和实际函数调用(有价值的C++类型检查)的所有好处。
9。命名控制。C++的两个控制名字的技术
1。)static关键字用以控制可视性和连接,还将研究它对于类的特殊含义。
2。)namespace,它允许把全局名字空间划分为不同的区域。
10。引用和拷贝构造函数。当我们使用平常的符号时,引用让编译器处理地址操作。拷贝构造函数控制对象通过传值方式传送给函数或从函数中返回。指向成员的指针(pointer to member)。
11。运算符重载。运算符也是函数调用。运算符重载只是不同类型的函数调用。要学会如何写自己的运算符重载,特别是当参数、返回类型混合使用和让运算符成为成员和友元时。
12。动态对象创建。
13。继承和组合
1)。用组合方法,可以以老的类型作为零件组装成新的类型。
2)。用继承方法,可以创建已存在类型的一个更特殊的版本。
14。多态和虚函数。关键字virtual允许笼统地谈论这个族中的所有对象。
15。模板和包容器类。模板为编译器提供了一种在类或函数体中代换类型名的方法。
16。多重继承。当需要通过用一个以上公共基类操作对象时,多重继承才是唯一必需的。介绍如何用模板解决一个共同的问题。:)作者不提倡使用多重继承?:)用多重继承修理一个“受损”的类界面是这一性能的主要的和非常有价值的应用。
17。异常处理。
18。运行时类型识别(RTTI).当我们仅给出一个指向基本类型的指针或引用时RTTI可以找出对象的准确类型。通常,我们会有意忽略对象的准确数据类
型,而让虚函数机制来实现这个类的正确行为,而知道准确类型将更有效地完成特殊情况的运算。解释了RTTI做什么和如何使用它。