当前位置:天才代写 > tutorial > C语言/C++ 教程 > c++工具模子念书条记

c++工具模子念书条记

2017-11-05 08:00 星期日 所属: C语言/C++ 教程 浏览:798

1、什么是C++工具模子

1、语言中直接支持面向工具措施设计的部门

2、各类支持的底层实现机制

2、C语言是面向进程的:

语言自己没有支持数据和函数之间的关联性,是措施性的,漫衍在各个以成果函数为导向的函数中他们处理惩罚的是配合的外部数据。

C++用独立的“抽象数据范例”ADT实现

3、C++在机关以及存取时间上主要特别承担的VIRUTAL引起的

1、virtual function机制

2、virtual base class多次担任系统中的基类,有一个单一而被共享的实体

4、C++有两种类成员数据范例[class data type]:

static,nonstatic

有三种类成员函数范例[class member function]:static,nonstatic,virtual

5、C++工具模子

nonstatic data member非静态数据成员被置于类工具中static data member静态成员函数被置放在所有类工具之外[被安排在措施中的data segment中] static function和nonstatic function也放在类工具之外static function在我看来雷同于nonmember function virtual function

1、每一个类发生一对指向virtual function的指针,安排在表格中virtual table(vtbl)

2、类工具添加了一个指针,指向vtbl,为vptr

6、在虚拟担任环境下,base class不管在担任串通中被派生过几多次,永远只存在一个实体subobject

7、要害词struct和class的差别:

struct浮现了数据萃取的观念

class浮现了adt(abstract data type)观念

我看来只要是思想上的差别,没有其他的不同

8、C++措施设计模子直接支持三种“措施设计规范”,也就是不可是OO了

1、措施模子:面向进程的设计

2、抽象数据范例模子:我看来表明数据萃取型STRUCT

3、面向工具模子

9、一个指针,不管它指向哪一个数据范例,指针自己需要的内存巨细是牢靠的,指向差异范例之各指针之间的差别,即不在其指针暗示法的差异,也不在其内容的差异,而在于它寻址出来的OBJECT范例的差异,我看来指针的范例就是为了通知编译器,让编译器的有差异的处理惩罚方法

10、多态就是指利用虚函数吗?

11、当一个基类被直接初始化(可能被指定为)一个担任类时,担任类就会被切割,以塞进较小的基类内存中

12、一个类假如没有自界说的结构函数,编译器会生成一个却省的结构函数,可是这个结构函数是没有详细浸染的被合成的结构函数,只满意编译器的需要,而不是满意措施的需要合成的结构函数只对基类工具和类工具成员函数的初始化,差池其他非静态DATA MEMBER初始化不是任何没有却省结构函数的类城市被合成出一个却生结构函数

13、内联函数有静态毗连,不会被档案以外者看到,假如内联函数很巨大,不适合做成内联函数,编译器汇合成一个明晰的、非内联的函数实体

14、假如一个类含有一个可能一个以上的类工具成员函数,类的结构函数会挪用每个类工具的却生结构函数

15、拷贝结构函数是类的一个参数是其类名的结构函数,假如类顶用户没有明晰界说,内部是以所谓的DEFAULT memberwise initialization,即却省的对每个成员函数初始化手法完成按照bit来拷贝结构函数

16、僵持所有的member的初始化操纵在member initialization list中完成,初始化顺序不是凭据initialization中的顺序完成,是凭据类中成员界说的顺序完成,编译器编译时将initialization安排在结构函数用户自定的编码前

17、一个空类巨细不是为空的,有一个忌讳的1字节,当时编译器安插进取的一个char,使得这个类在内存中分派唯一无二的地点。[我不知道是否所有的编辑器都是如此?]

18、类的巨细跟呆板和编辑器有关,受到三种因素的印象

1、语言自己所造成的特别承担

2、编译器对非凡环境举办的优化处理惩罚

3、alignment的限制,alignment就是将某数的整倍数,譬喻32位计较机上,一般为4字节

19、不管类发生几多个工具,静态数据成员永远只存在一份实体

 

    关键字:

天才代写-代写联系方式