c++对象模型简介

#1.简单对象模型.

 

 

#表格驱动模型. 

 

 

#3.c++对象模型. 

 

其中,只有c++对象模型被各大编译器厂商应用,其实动态语言,如python使用的就是类似简单对象模型,引用!

1. c++对象模型把非静态数据成员放在每一个对象中,静态数据成员,静态函数和非静态成员函数放在对象之外,
2. 对于虚函数的实现:
    1. 由类产生一个虚表(vtbl), 表中存放一系列指向虚函数的指针(虚表由类产生!)。
    2. 每个对象都被添加一个指向虚函数表的指针(vptr),即虚函数表指针,虚函数表指针的设置由类的构造函        
        数,析构函数,赋值运算符在编译器内自动完成。
    3. 虚函数表由类创建,这就意味着虚函数表不会随类的对象而发生改变,虚函数表指针有类所创建的对象长    
        生,即由类创建的每个对象都拥有一个只想虚函数表的虚表指针。
    4. 每个类所关联的信息type_info(主要用于支持RTTI, 即运行期类型识别)也通常被虚函数表中的指针指
        出,该信息常常被放在虚函数表的第一个槽位。

 

 

几个应用得比较广泛的几个概念: 

  1.  槽(slot):其实就是一块内存区域。
  2. 索引值:对象成员的编号。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值