类和对象 第六部分第三小节:继承中的对象模型

问题:从父类继承过来的成员,有哪些属于子类对象中

代码案例:

#include<iostream>
using namespace std;
class Base
{
public:
	int m_A;
protected:
	int m_B;
private:
	int m_C; //私有成员只是被隐藏了,但是还是会继承下去
};

//公共继承
class Son :public Base
{
public:
	int m_D;
};

void test01()
{
	cout << "sizeof Son = " << sizeof(Son) << endl;
}

int main() {

	test01();

	system("pause");

	return 0;
}

结果表明:父类中所有非静态成员属性都会被子类继承下去,父类中私有成元函数是被编译器给隐藏了,因此是访问不到的,但确实被继承下去了

注:int是32位 4字节;这边有16字节,说明除了创建的4字节,上面类中的12字节全部被继承

额外:我们可以侧面验证数据是否被隐藏

在开始界面找到VS文件夹,打开其中的开发人员命令提示符(developer commend prompt for VS)

然后我们需要打开我们当前文件存放位置,

并复制其中的地址

我们在命令提示符中跳转盘符到对应的文件存放盘,格式为“盘符:”

然后,我们通过cd命名指向对应的文件夹

使用dir命令列出当前目录下的内容

我们再输入以下命令(cl / d1 reportSingleClassLayoutson 源1.cpps),输出单个类的布局,其中son代表要查看的类,源1.cpp代表所处的文件,自行修改

即可查看类的布局

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值