问题:从父类继承过来的成员,有哪些属于子类对象中
代码案例:
#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代表所处的文件,自行修改
即可查看类的布局