程序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. vue解决点击事件冒泡 .stop

    vue解决点击事件冒泡  .stop <div @click="toCourse()" > <van-button type="primary" ...

  2. memoのcmake和pkgconfig

    之前看到过pkgconfig,完全不理解什么东西,也没有去探究这到底是个啥. 然而今天想要cmake brew的库,无意中查到一种解决方案,就是利用pkg-config. 老神奇了. # includ ...

  3. 替代学习物联网-云服务-04TLINK云MQTT

    1.注册TLINK www.tlink.io 记录下登录的用户名,密码.MQTT需要 2.添加设备  3.设备序列号:clientID 4.mqtt.fx调试器  5.订阅主题 在MQTT.fx上,单 ...

  4. Java输入输出格式

    一.输入字符串 Scanner in=new Scanner(System.in); String str1=in.next(); //输入一个字符串,以空格或回车结束 String str2=in. ...

  5. SpringBatch生成的DB表SQL

    SQL: -- Autogenerated: do not edit this file DROP TABLE IF EXISTS BATCH_STEP_EXECUTION_CONTEXT; DROP ...

  6. DE 算法的变体python实现

    上演化计算课的时候老师讲了一种DE算法的改进算法CoDE,于是看了下CoDE的论文中的算法步骤: 算法中使用的三种交叉策略: 根据不同的交叉策略采取不同的变异策略: 超参数的三种不同组合(一一对应): ...

  7. C语言——数组

    一.一维数组 声明形式: type arrayName [ arraySize ]; 实例: 1 #include <stdio.h> 2 int main() 3 { 4 int Arr ...

  8. centos7.6镜像

    centos7.6镜像 https://archive.kernel.org/centos-vault/7.6.1810/isos/x86_64/

  9. angular项目语言切换功能

    1.NzI18nService服务 参考:https://ng.ant.design/docs/i18n/zh 2.ngx-translate插件 1)安装依赖 npm install @ngx-tr ...

  10. 如何服务好B端客户

    核心价值: 2B公司的核心价值在于服务.如何服务好客户,需要的是了解客户,与客户共赢. 一.客户信任度的建立 服务:不是口头说说,是要落地与实践. 对于客户的承诺至关重要,承诺的时间点.承诺的事情要保 ...