程序1:

#pragma warning(disable:4996)
//2022年9月21日19:20:29
#include <iostream>
using namespace std; //1.空类的大小是1,不是0
class Maker
{ }; void test01()
{
cout << sizeof(Maker) << endl; }
int main()
{
test01();
system("pause");
return EXIT_SUCCESS;
}

输出结果:

1
请按任意键继续. . .


程序2:

#pragma warning(disable:4996)
//2022年9月21日19:20:29
#include <iostream>
using namespace std; //1.空类的大小是1,不是0
class Maker
{ }; void test01()
{
cout << sizeof(Maker) << endl;
Maker *m = new Maker[20];//为什么空类是1?因为编译器从内存更好区分对象
} class Maker2
{
public:
void func()
{ }
};
void test02()
{
cout << sizeof(Maker2) << endl;
} int main()
{
test02();//类的成员函数不占用类的大小
system("pause");
return EXIT_SUCCESS;
}

输出结果:

1
请按任意键继续. . .


程序3:

#pragma warning(disable:4996)
//2022年9月21日19:20:29
#include <iostream>
using namespace std; //1.空类的大小是1,不是0
class Maker
{ }; void test01()
{
cout << sizeof(Maker) << endl;
Maker *m = new Maker[20];//为什么空类是1?因为编译器从内存更好区分对象
} class Maker2
{
public:
void func()//2.成员函数不占用类的大小
{ }
}; void test02()
{
cout << sizeof(Maker2) << endl;
} int main()
{
test02();
system("pause");
return EXIT_SUCCESS;
}

输出结果:

1
请按任意键继续. . .


程序4:

#pragma warning(disable:4996)
//2022年9月21日19:20:29
#include <iostream>
using namespace std; //1.空类的大小是1,不是0
class Maker
{ }; void test01()
{
cout << sizeof(Maker) << endl;
Maker *m = new Maker[20];//为什么空类是1?因为编译器从内存更好区分对象
} class Maker2
{
public:
//void func()//2.成员函数不占用类的大小
//{ //}
static int a;//3.静态成员变量不占用类的成员大小,静态成员函数不占用类的成员大小
//static void func()//4.静态成员函数不占用类的大小
//{ //}
//int b;//5.普通成员变量占用类的大小
};
int Maker2::a = 100;
void test02()
{
cout << sizeof(Maker2) << endl;
} int main()
{
test02();
system("pause");
return EXIT_SUCCESS;
}

输出结果:

1
请按任意键继续. . .


程序5:

#pragma warning(disable:4996)
//2022年9月21日19:20:29
#include <iostream>
using namespace std; //1.空类的大小是1,不是0
class Maker
{ }; void test01()
{
cout << sizeof(Maker) << endl;
Maker *m = new Maker[20];//为什么空类是1?因为编译器从内存更好区分对象
} class Maker2
{
public:
//void func()//2.成员函数不占用类的大小
//{ //}
//static int a;//3.静态成员变量不占用类的成员大小,静态成员函数不占用类的成员大小
static void func()//4.静态成员函数不占用类的大小
{ }
//int b;//5.普通成员变量占用类的大小
};
//int Maker2::a = 100;
void test02()
{
cout << sizeof(Maker2) << endl;
} int main()
{
test02();
system("pause");
return EXIT_SUCCESS;
}

输出结果:

1
请按任意键继续. . .


程序6:

#pragma warning(disable:4996)
//2022年9月21日19:20:29
#include <iostream>
using namespace std; //1.空类的大小是1,不是0
class Maker
{ }; void test01()
{
cout << sizeof(Maker) << endl;
Maker *m = new Maker[20];//为什么空类是1?因为编译器从内存更好区分对象
} class Maker2
{
public:
//void func()//2.成员函数不占用类的大小
//{ //}
//static int a;//3.静态成员变量不占用类的成员大小,静态成员函数不占用类的成员大小
//static void func()//4.静态成员函数不占用类的大小
//{ //}
int b;//5.普通成员变量占用类的大小
};
//int Maker2::a = 100;
void test02()
{
cout << sizeof(Maker2) << endl;
} int main()
{
test02();
system("pause");
return EXIT_SUCCESS;
}

输出结果:

4
请按任意键继续. . .

21.C++的对象模型的更多相关文章

  1. iOS开发进阶

    <iOS开发进阶>基本信息作者: 唐巧 出版社:电子工业出版社ISBN:9787121247453上架时间:2014-12-26出版日期:2015 年1月开本:16开页码:268版次:1- ...

  2. 《iOS开发进阶》书籍目录

    第一部分:iOS开发工具 第二部分:iOS开发实践 第10章 理解内存管理 10.1 引用计数 10.1.1 什么是引用计数,原理是什么 10.1.2 我们为什么需要引用计数 10.1.3 不要向已经 ...

  3. BOM (Browser Object Model) 浏览器对象模型

    l对象的角色,因此所有在全局作用域中声明的变量/函数都会变成window对象的属性和方法; // PS:尝试访问未声明的变量会抛出错误,但是通过查询window对象,可以知道某个可能未声明的对象是否存 ...

  4. iOS Objective-C对象模型及应用

    前言 原创文章,转载请注明出自唐巧的技术博客. 本文主要介绍Objective-C对象模型的实现细节,以及Objective-C语言对象模型中对isa swizzling和method swizzli ...

  5. Ruby的对象模型

    目录 备注对象模型无图无真相基本规则代码示例如何修改Singleton Class?如何修改类型,如Child?类型方法是特殊的实例方法,这些方法定义在类型的Singleton Class中.备注 备 ...

  6. gcc下c++的对象模型 (1)

    所有示例代码在如下环境中执行 ubuntu 16.04.4 (64位) gcc version 5.4.0 开启std11 gdb version 7.11.1 1. 空类的大小 定义一个空类A,实例 ...

  7. JavaScript学习总结(一)——ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)

    一.JavaScript简介 JavaScript是一种解释执行的脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型,它遵循ECMAScript标准.它的解释器被称为JavaScript引 ...

  8. SharePoint2010 对象模型 关联列表

    有关列表的创建其实网上已经有很多文章了,其中练习 :利用Visual Studio 2010创建列表这篇文章个人感觉还不错,这里我强调的是对象模型来创建.在这之前我插入一点其他的东东,导入电子表格和数 ...

  9. JavaScript浏览器对象模型(BOM)之window对象

    一.BOM概述 BOM(Browser Object Model)浏览器对象模型,它提供了很多对象,用于访问浏览器的功能. BOM 缺少规范,每个浏览器提供商又按照自己想法去扩展它,那么浏览器共有对象 ...

  10. SharePoint服务器端对象模型 之 访问文件和文件夹(Part 3)

    (三)遍历 文件系统的遍历是指按照文件夹的层级结构遍历文档库.列表的文件夹和列表条目.遍历主要有三种方式:(1)直接使用文件系统对象模型进行遍历:(2)使用SPDocumentLibrary进行遍历: ...

随机推荐

  1. Unity生成AB包和加载AB包

    unity生成AB包 生产AB包,编辑器脚本放在Editor文件夹下(切记) 如果你是PC包 BuildTarget.WebGL  后面要改成PC (BuildTarget.StandaloneWin ...

  2. How to use lspci, lsscsi, lsusb, and lsblk to get Linux system devices information

    There are many utilities available to check Linux system hardware information. Some commands report ...

  3. labwindows/cvi activex 控件无法正常使用问题解决

    在进行labwindows/cvi编程时,想使用时间控件,需要在界面上点击右键的activex选项中选择Microsoft Data and Time picker control6.0(SP4).如 ...

  4. 记一次前端ajax禁止使用异步async的操作

    环境: 前端layui  jquery 情况: 页面在iframe里面, 然后点击按钮,弹出输入框.点击确认,弹出框发送内容到后台, 传送数据到后台后,然后根据返回一个map给前端.前端解析数据,返回 ...

  5. springsecurity 配置swagger

    最近在学习springsecurity 安全框架,具体是什么概念在这里不一一赘述了.下面呢,咱们一起搭建一下简单的springsecurity swagger 项目感受一下. 首先初始化spring ...

  6. ADOConnection调用连接窗口

    uses   AdoConEd; 使用函数 1.EditConnectionString(ADOConnection); 2.PromptDataSource

  7. anaconda怎么将用户名路径切换为工作路径

  8. go的相关包time、os、rand、fmt

    time 1.time包 2.time.Time类型, 用来表示时间 3.取当前时间, now := time.Now() 4.time.Now().Day(),time.Now().Minute() ...

  9. JetPack Compose 入门还得是官方

    官方写的真不错! 和那些所谓"教程"比真的简单高效不罗嗦! 所以还得是官方! 使用 Jetpack Compose 更快地打造更出色的应用 https://developer.an ...

  10. maven资源导出问题

    <!--在build中配置resources,来防止我们资源导出失败的问题--> <build> <resources> <resource> < ...