c++对象模型

1、简单的对象模型  -  每一个函数、变量按声明顺序把指针放入模型的slots(插槽)中
2、表格驱动对象模型 - 成员数据表格直接存放成员数据对象, 成员函数表格直接存放成员函数指针
3、c++对象模型 - 虚函数地址存放在虚表中, 第一个slot是type_info object。 noStatic member data 存放于每个class object之内,Static member data & noStatic member function & member function 存放于class object 之外(这就是 静态函数 成员函数 静态变量 都生成一份的原因)
4、关于合成默认构造弄得有点晕
5、编译器为未声明constructor的class合成一个default constructor(该默认构造仅对编译器有用)
1、 调用member object 
2、 调用 base class 的default constructor
3、为每一个object初始化其virtual function机制
4、为每一个object初始化其virtual base class 机制
其他时候会合成implicit trivial default constructor(隐含的无用默认构造)它们实际上并不会被合成出来
6、成员变量初始化顺序取决于声明时候的顺序
7、class object 的大小主要由 编译器自己加上的额外Data member(如虚表指针), Alignment(对其)的需要
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值