<b>c++对象模子读书笔记</b>[VC/C++编程]
本文“<b>c++对象模子读书笔记</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
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、不管类产生多少个对象,静态数据成员永久只存在一份实体
以上是“<b>c++对象模子读书笔记</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |