派生类对象模型之单继承派生类对象模型

继承作为C++三大特性之一,无疑是非常重要的,而深入内存,弄懂派生类对象模型又是重中之重。本文我们来看看单继承中的派生类的对象模型。
首先我们建立一个简单的继承体系:

class Base
{
public:
    Base()
        : b(1)
    {
        std::cout << "Base()" << std::endl;
    }
    int b;
};
class Derive :public Base
{
public:
    Derive()
        : d(3)
    {
        std::cout << "Derive()" << std::endl;
    }
    int d;
};

这里声明了两个类,Base类有数据成员b,在构造函数中初始化为1;Derive类有数据成员d,在构造函数中初始化为3。而Derive类继承自Base类,因此Derive类应该有两个数据——b与d。我们在vs中来看一看派生类Derive对象的内存空间的数据:
这里写图片描述
通过对派生类对象内存空间中的观察,我们能发现继承自基类的数据成员存储于低地址空间,而派生类新增的数据成员存储于高地址空间。
据此,可以画出简单单继承关系中派生类的对象模型:
这里写图片描述
分析完毕,望高手斧正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值