C++面向对象之继承的本质

继承就是子类拥有父类的所有成员(变量\函数)
C++中没有像Java、Objective-C的基类(即最开始的类继承自Object),只有父类和子类,子类继承自父类,父类没有继承任何一个类

继承之对象内存布局

下面代码,有3个依次继承的类,子类和父类中的成员在内存中是怎么排列的呢?
在这里插入图片描述
父类的成员变量在前,子类的成员变量在后
在这里插入图片描述

成员访问权限和继承方式

class定义类成员默认privated,struct定义类成员默认public
class定义类继承默认privated,struct定义类继承默认public

成员访问权限、继承方式有3种

public:公共的,任何地方都可以访问(struct默认)

protected:子类内部、当前类内部可以访问

private:私有的,只有当前类内部可以访问(class默认)

子类内部访问父类成员的权限,是以下2项中权限最小的那个:
1.成员本身的访问权限
2.上一级父类的继承方式

若成员本身访问权限是私有,上一级父类是共有继承,依旧无法访问
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

** 开发中用的最多的继承方式是public,这样能保留父类原来的成员访问权限**
访问权限不影响对象的内存布局

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值