初学C++的宏观问题——对象的演化

《c++编程思想》阅读笔记(1)

《c++编程思想》阅读笔记
本人开始学习C++,因为从C转到C++,思维方式有了很大的变化,所以在这里摘录下个人看书的笔记,对C++与C的宏观变化做一个简略的笔记记录,以便查看(不定时更新)


1、类描述了一组有相同特性(数据元素)和相同行为(函数)的对象。类实际上就是数据类型,例如,浮点数也有一组特性和行为。区别在于程序员定义类是为了与具体问题相适应,而不是被迫使用已经存在的数据类型。程序员可以通过增添他所需要的新数据类型来扩展这个程序设计语言。该程序设计系统欢迎创建、关注新的类,对他们进行与内部类型一样的类型检查。
2、OOP技术能够很容易地将大量问题归纳成为一个简单的解。
3、抽象数据类型的创建是面向对象程序设计中的一个基本概念。程序员可以创建类型的变量(在面向对象程序设计中称为“对象”或“实例”)并操纵这些变量(称为发送“信息”或请求,对象根据发来的信息知道需要做什么事情)

4、一个类型可能包括比另一个类型更多的特性,也可以处理更多的信息。继承表示了基本类型和派生类型之间的相似性。一个基本类型具有所有由他派生出来的类型所共有的特性和行为。程序员可以用继承建立类的层次结构,在该层次结构中用类型术语来表述他需要解决的问题。
5、用与问题相同的术语描述问题的解释非常有益的,这样不需要很多中间模型。使用对象术语,类型层次结构是主要模型,所以可以从现实世界中的系统描述直接进入代码中的系统描述

6、用c语言编写的过程程序就是一些数据定义和函数调用。要理解这种程序的含义。程序员必须掌握函数调用和函数实现的本身。这就是过程程序需要中间表示的原因。中间表示容易引起混淆,因为中间表示的表述是原始的,更偏向于计算机,而不偏向于所解决的问题。
7、事实上,一个写得很好的c++程序一般要比功能相同的c程序更简单和容易理解。面向对象程序设计的优点之一是通过阅读,很容易理解代码。

8、c++成功的原因是经济上的:转变到OOP需要代价,而转变到C++所花的代价较小。c++的成功是因为他立足于实际:尽可能地为程序员提供最大便利 9、用c++系统更容易表达和理解,为适合于某问题而设计的类当然能跟好地表达这个问题。这意味着写代码时,程序员是在用问题空间的术语描述问题的解,而不是用计算机的术语,也就是解空间的术语来描述问题的解。程序员所涉及的是较高层的概念,一行代码能够做更多的事情。易于表达所带来的另一个好处是易于维护。

10、创建程序的最快方法是用已经写好的代码:库。c++的主要目的是让程序员能更用于地使用库,这是通过将库转换为新数据类型(类)来完成的。引入一个库,就是向改语言增加一个新类型。编译器负责这个库如何使用,保证适当的初始化和清除,保证函数被正确地调用,因此程序员的精力可以集中在他想要这个程序做什么,而不是如何做上。减少了c语言的名字冲突。


11、为了更新和改善程序,需要更新思考问题的方法。它不只是“我们如何让程序工作”,而是“我们如何让程序工作并且使它变得更容易改变”。这里就有一个新问题:当我们只是试图让程序工作时,我们可以假设开发组是稳定的,但是如果我们考虑程序的整个生命周期,就必须假设开发组成员会改变。这意味着,新组员必须以某种方式学习原程序的要点,并与老组员a互相通讯。这样,该程序就需要某种形式的设计文档。(也就是我们在github上经常见到的readme.mk文件)

12、OOP方法的首要目标必须是产生好的设计。

(ps: 这里的笔记是我看懂的部分,并不是整本书的完全版归纳= =, 所以会有不定时的更新:))

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值