Thinking in C++读书笔记【一】---对象导言
2014-03-03 22:19
330 查看
最近想要换一个工作环境,去了几家公司面试都被鄙视了,发现自己还有很多东西需要学习。从这本书开始,踏踏实实每一步!
实现的重用:程序可以通过聚合的方式来让程序变得更加灵活。
继承--接口重用:C++通过继承的机制让程序员能够最大限度的减少代码的冗余。可以让程序更加符合OOP的思想。
具有多态性的可互换对象:同样是继承自一个几类的子类,同时都有一个Move方法,为了简化不让我们为每一种Move进行判断并且编码,多态的机制帮助我 们节省了很多的时间和精力。
关于多态的实现,我们编译器采用的是晚绑定的思想,当调用对象的接口时,在程序运行的时候才去计算被调用函数的地址(具体过程后面讲解)。
栈上创建:通常是在函数内创建,我们们叫做局部变量,在函数返回时销毁。
静态存储区创建(静态存储区是固定的一块内存,程序开始执行以前分配):通常叫做静态变量static,程序执行完销毁。
堆上创建:同常也是在函数内创建,通过new创建,生命周期必须我们通过delete进行控制。
C++异常的处理时交给一个异常对象,程序或者是操作系统通过监视这个异常对象的状态来进行出,这和函数的返回码完全是两种概念,函数的返回码可以被忽略,但是异常是不可以忽略的,我们可以通过对异常的处理使程序重新恢复正常。
⑴制定计划:用尽量少的精炼的词语概括所要做的。
⑵需求制定:明白我们要做的是什么,不要抠细节,弄清主体。可以通过用例图来帮助我们更好的弄清楚需求,划分好边界。
⑶建立对象:一个又去的方法,拿出一些小的卡 片,在卡片上写出对象的名称和接口,当一张卡片上写不下,可能是我们的对象需要细化了。(CRC卡片)
a 对象发现
b 对象装配
c 系统构造
d 系统扩充
e 对象重用(最高目标)
⑷创建核心:将系统的核心建立好,通过项目不断的发展来发现更多对象进行系统扩充
⑸迭代用例:不断的迭代用例来扩展系统。
⑹进化:通过不断的进化来完善我们的程序。
(整个过程和人类的成长有些像!)
⑵结对编程:一人编写代码一人思考,然后code review
第一卷 标准C++导引
第一章 对象导言
看了第一章就发现原来自己真的差的好远啊,好多东西都不懂。不是平白无故的被鄙视啊!加油!1 抽象的过程
C++编程的首要特性就是允许我们将问题进行抽象,通过抽象可以将一个大的问题分解成我们更容易理解的对象和对象之间的交互的过程。这样更有利于我们进行编程。以后编程的时候一定要好好进行抽象的工作,这是一个好的程序的开始。2 uml的学习:
顺便学习一下uml,可以帮助进行抽象,原来根本没有注意过这些,汗!3 C++为了简化:
实现的隐藏:C++为了屏蔽掉对于某一领域程序员复杂难懂的逻辑,用public、private、protected实现边界的控制。实现的重用:程序可以通过聚合的方式来让程序变得更加灵活。
继承--接口重用:C++通过继承的机制让程序员能够最大限度的减少代码的冗余。可以让程序更加符合OOP的思想。
具有多态性的可互换对象:同样是继承自一个几类的子类,同时都有一个Move方法,为了简化不让我们为每一种Move进行判断并且编码,多态的机制帮助我 们节省了很多的时间和精力。
关于多态的实现,我们编译器采用的是晚绑定的思想,当调用对象的接口时,在程序运行的时候才去计算被调用函数的地址(具体过程后面讲解)。
4 对象的创建和销毁:
程序创建对象有几种方式(从原理上讲):栈上创建:通常是在函数内创建,我们们叫做局部变量,在函数返回时销毁。
静态存储区创建(静态存储区是固定的一块内存,程序开始执行以前分配):通常叫做静态变量static,程序执行完销毁。
堆上创建:同常也是在函数内创建,通过new创建,生命周期必须我们通过delete进行控制。
5 异常处理:
可以说C++的异常处理太强大了,原来根本就没有注意到,以后一定要注意程序的异常处理。C++异常的处理时交给一个异常对象,程序或者是操作系统通过监视这个异常对象的状态来进行出,这和函数的返回码完全是两种概念,函数的返回码可以被忽略,但是异常是不可以忽略的,我们可以通过对异常的处理使程序重新恢复正常。
6 分析与设计:
问题是随着解决问题的过程不断产生的!⑴制定计划:用尽量少的精炼的词语概括所要做的。
⑵需求制定:明白我们要做的是什么,不要抠细节,弄清主体。可以通过用例图来帮助我们更好的弄清楚需求,划分好边界。
⑶建立对象:一个又去的方法,拿出一些小的卡 片,在卡片上写出对象的名称和接口,当一张卡片上写不下,可能是我们的对象需要细化了。(CRC卡片)
a 对象发现
b 对象装配
c 系统构造
d 系统扩充
e 对象重用(最高目标)
⑷创建核心:将系统的核心建立好,通过项目不断的发展来发现更多对象进行系统扩充
⑸迭代用例:不断的迭代用例来扩展系统。
⑹进化:通过不断的进化来完善我们的程序。
(整个过程和人类的成长有些像!)
7 极限编程(XP):
⑴先写测试:通过测试的方式最贴切的设计出符合测试的程序(别文档好用)⑵结对编程:一人编写代码一人思考,然后code review
8尽可能的使用库:
这是C++设计的初衷!相关文章推荐
- 关于指针的一些事情
- 只需十分钟,结果大不同 |《深度思考》
- 《洋葱阅读法》读书笔记
- C/C++数据对齐详细解析
- C++中引用的使用总结
- C与C++之间相互调用实例方法讲解
- C++中引用(&)的用法与应用实例分析
- 解析C++ 浮点数的格式化输出
- 深入分析C++中几个最不常用的关键字
- c++中inline的用法分析
- C++ Primer 第一部分基本语言
- 深入解析C++ Data Member内存布局
- 从汇编看c++中默认构造函数的使用分析
- 关于C++中的友元函数的一些总结
- C++的sstream标准库详细介绍
- 基于C++自动化编译工具的使用详解
- 浅谈C++中的string 类型占几个字节
- C/C++ 宏详细解析
- 深入分析C++中两个大数相乘结果不正确的问题
- 探讨C++中数组名与指针的用法比较分析