此书思想:使用和抽象。全书探讨c++如何支持此思想,以及如何使用此思想。
第一章:为什么用C++
1.问题
由问题导出:解决方案的可移植性;复杂代码的支持;提高效率。
解决方法:选择c++,有效的解决以上问题。 主要由c++的数据抽象能力。
1.2 ASD项目的问题
c实现的ASD(Automatic Software Distribution)需考虑可靠性和通用性。
1.3 可靠性和通用性
c中没有字符串,只能用指针控制新分配的内存。这就要用户管理内存。这会出现频繁的内存分配和释放,如果遗漏,将大大影响可靠性。
1.3.2为什么用C
由于C可以便捷的使用高效的操作系统接口。
1.3.3 应付快速增长
#有尽量多的操作系统的接口
1.4进入c++
c++的几个特点
I. 抽象数据类型
能很好的表达程序的设计思想,而不用像c一样考虑太多的隐秘的技术细节。
C中的隐藏的约定
C中有字符文本,但实际没有字符串的概念。字符串常量实际上是未命名的字符数组的简写。
char hello[] ="HELLO";
但这样就错了:
char hello[5];
hello ="HELLO";//这是由于c中没有build-in方法。
在c中正确方法:
char * hello;
hello = "hello";
对于ASD,采用的3个约定:
1.串由一个指向它的首字符的指针来表示
2.串的结尾用一个空字符标识
3.生成的串的函数不循序用于这些串的生命期的约定。
第二章 为什么用c++工作
项目的规模越来越大,难以描述时。需要考虑将一个庞大的编程问题当作小的,独立的编程问题看待。
为大系统各个小项目存在的关系理清。即项目间有接口,这些接口像常用的子程序和数据结构的抽象一样成为程序员开发工具中重要的组成部分。
2.2抽象
抽象使得更加灵活方便的解决问题。隐藏不必要的细节
抽象和规范
c中对内存分配malloc和释放free是对内存处理的抽象。但需要遵循一些规范:
1.知道分配了多少内存
2.不适用超出分配内存范围外的内存
3.不需要时释放内存
4.只释放分配的内存
5.切记检查每次分配的内存,确保分配成功
抽象和内存管理
C++中用到了抽象和接口,其关键就是能把问题分解为完全独立的小块。这些小块通过类的定义和成员函数及友元函数联系起来。
2.3机器应该为人服务
为什么要关注语言和抽象?
解决大项目的管理问题。做工具的主人。从以人为本的思考开发软件。