C++学习Day06之继承中的对象模型

目录

  • 一、程序及输出
    • 1.1 程序检验对象
    • 1.2 开发人员工具查看对象模型
      • 1.2.1 查看对应工程目录文件
      • 1.2.2 查看对象模型
  • 二、分析与总结


一、程序及输出

1.1 程序检验对象

父类中私有属性,子类访问不到,是由编译器给隐藏了,但仍然在子类对象模型中

#include
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 << "size of  Son = " << sizeof(Son) << endl; // 结果为16
}


int main(){
	test01();
	system("pause");
	return EXIT_SUCCESS;
}

输出:
C++学习Day06之继承中的对象模型_第1张图片

1.2 开发人员工具查看对象模型

打开 工具–命令行–开发人员命令提示
C++学习Day06之继承中的对象模型_第2张图片

1.2.1 查看对应工程目录文件

查看对应工程目录文件:dir
C++学习Day06之继承中的对象模型_第3张图片

1.2.2 查看对象模型

查看对象模型: cl /d1 reportSingleClassLayout+类名 类对应文件
比如查看Son类对象模型: cl /d1 reportSingleClassLayoutSon test.cpp
C++学习Day06之继承中的对象模型_第4张图片


二、分析与总结

父类中私有属性,子类访问不到,是由编译器给隐藏了,但仍然在子类对象模型中
查看对应工程目录文件:dir
查看对象模型: cl /d1 reportSingleClassLayout+类名 类对应文件

你可能感兴趣的:(C++,c++,学习,开发语言)