Thinking in C++ 阅读笔记(第一章)

王朝c/c++·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

2月20日

刚买书,明明是开源的,还要将近60元,

黑啊真是的!

归入正题:

粗看了一下序言,大概地介绍吧,还有一堆推荐书的好话。真正让我兴奋的还在后面!看C++方式的改变!

第一章 对象导言(introduction不就是介绍吗?导个什么言!)

我所回忆的内容:(翻书补充)

1、 对象和类

抽象法来看问题,万物即为对象,而对象有性质,所以把对象用抽象的类,也就是共性来描述。

五大原则:

1、万物皆为对象(程序也如此,可细分为一组)

2、对象互相交流(函数调用请求)

3、对象互构(更复杂程序的可能性)

4、一切对象都有属性(类的可能)

5、一个类的所有对象都能接受同一个消息(OOP强大功能的可能)

模型: 类(抽象)——实例/对象(具体)

解决理论与实际结合的困难:接口 interface(函数)

模型:对象——接口

可以想见int的定义(内建的类)和class的定义目的是一致的(用户自定义的类)类即类型

C++实现:class

2、类的特点

封装:用类实现,避免复杂性的暴露和错误,隐私

模型:程序员(类创建者)——客户使用者(客户程序员)

C++实现:access specifer 访问说明符

public:公共接口(外部函数可以访问)

protected:保护接口(外部函数中继承类的可以访问)

pravite:内部接口 (内部函数可以访问)<保密性渐大>

继承 (为了重用)inheritance:把类进一步抽象

模 型:基类(类的类//我的用语)——派生类

(超类/父类) ——(继承类/子类)

两种继承方式:修改派生类的接口函数(纯继承 pure inherent) 函数重载 over-ridding

is-a

增加派生类的接口函数

is-like-a (基类无法调用派生类新函数)

另一种方式:聚合aggregation(组合 composition)不同类的对象组成新类(创建一个成员对象)

has-a 灵活性

多态性:继承类的个性

效率问题:(基于 is-a)

希望通过操作基类函数合法进行派生类实现

处理派生类型就像处理基本类型的过程(向上类型转化 upcasting)

从基类函数执行不同派生类被继承函数正确性的保证:

e.g 基类move()-> 派生类1.move()派生类 2.move()

其他语言:早捆绑 early binding

C++: 晚捆绑 late binding (编译器到函数执行还不知道具体类型及对象个数)

关键字 virtual (先有个印象)

3、对象的创建和销毁 (在后面进一步理解)

两种方式:堆stack 动态分配 速度慢 量大 虚拟内存 不关注细节 灵活性

栈heap 静态分配 速度快 量小 内存 关注细节(函数生命期)

C++ 的实现:动态分配

new 创建对象

delete 销毁对象

[方法论] (跳过)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有  導航