程序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. JAVA随机获取集合里的元素

    @Test public void aaa(){ String[] sbNo = new String[]{"asd","asd","asd" ...

  2. calibredrv 对layer做操作

    #clip.tclset L [layout create xxx.gds] $L create layer 10.0 $L create polygon 10.0 10 1000 1000 2000 ...

  3. flutter 顶部导航tabbar自定义

    本文使用tabbar实现顶部横向滚动多个菜单. 实现tabbar搜索框功能加功能按钮. 话不多说,上代码! import 'package:flutter/cupertino.dart'; impor ...

  4. iOS 高级面试题

    面试题 iOS 基础题 分类和扩展有什么区别?可以分别用来做什么?分类有哪些局限性?分类的结构体里面有哪些成员? 讲一下atomic的实现机制:为什么不能保证绝对的线程安全(最好可以结合场景来说)? ...

  5. windows快捷键, 基本dos命令

    Ctrl+C 复制Ctrl+V 粘贴Ctrl+A 全选Ctrl+X 剪切Ctrl+S 保存Alt+F4 关闭窗口shift+delete 永久删除Window+R 打开运行cmd 打开命令行窗口Win ...

  6. python机器学习——BP(反向传播)神经网络算法

    背景与原理: BP神经网络通常指基于误差反向传播算法的多层神经网络,BP算法由信号的前向传播和反向传播两个过程组成,在前向传播的过程中,输入从输入层进入网络,经过隐含层逐层传递到达输出层输出,如果输出 ...

  7. GitLab版本定版

    定版指令: git add -Agit commit -m ""git push origin develops:V5.2

  8. 07 如果再使用animateCC2018或者苹果系统使用animate时出现Uncaught ReferenceError: lib is not defined的错误

    我刚开始还以为是模板造成的,换了个没有问题的模板就没有问题了,原来问题是这样. 点我预览,请看该文章

  9. turtle 画照片

    # -*- coding: utf-8 -*- import turtle as t import cv2 def draw_img(img_path, scale=1): ""& ...

  10. 使用dumpbin查看dll文件中的api

    一.找到vs自带的dumpbin 我的目录如下: C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14 ...