c++ 学习 之 类内成员变量和成员函数分开存储

news2025/1/11 13:02:07

正文

一个空的类占多少内存

看代码

#define CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;

// 在c++ 中类内成员变量和成员函数分开存储
class Person
{

};

void test()
{
	Person p;
	// 空对象占的内存为 1 ,是为了区分空对象占内存的位置
	cout << " sizeof of p " << sizeof(p) << endl;
}
int main()
{
	test();
}

在这里插入图片描述
每个空的对象也有一个独一无二的内存地址

如果类中有成员变量呢

看代码

#define CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;

// 在c++ 中类内成员变量和成员函数分开存储
class Person
{
	int m_A;
};

void test()
{
	Person p;
	cout << " sizeof of p " << sizeof(p) << endl;
}
int main()
{
	test();
}

上面会显示多少的内存呢,是四个还是五个(加上之前空的时候占有的一个),还是八个(内存对齐)?
答案是 四个 ,之前占有的一个字节只是为了标记
在这里插入图片描述

如果有静态成员变量 和 成员函数呢

#define CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;

// 在c++ 中类内成员变量和成员函数分开存储
class Person
{
	int m_A;
	static int m_B;
	void fun()
	{

	}
};

void test()
{
	Person p;
	cout << " sizeof of p " << sizeof(p) << endl;
}
int main()
{
	test();
}

上面的结果会是多少呢
答案还是 4 ,为什么呢?
静态成员函数,不属于类对象上,非静态成员函数也不属于类对象

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/999310.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

多线程-阻塞队列

在这篇博客中我们接触的队列都是非阻塞队列&#xff0c;比如PriorityQueue、LinkedList&#xff08;LinkedList是双向链表&#xff0c;它实现了Dequeue接口&#xff09;。 使用非阻塞队列的时候有一个很大问题就是&#xff1a;它不会对当前线程产生阻塞&#xff0c;那么在面对类…

飞行动力学 - 第19节-part2-尾旋及改出 之 基础点摘要

飞行动力学 - 第19节-part2-尾旋及改出 之 基础点摘要 1. 尾旋2. 尾旋进入3. 尾旋改出4. 参考资料 1. 尾旋 尾旋是一种绕垂直轴自动旋转、下降的特殊失速现象。 特点&#xff1a; 尾旋半径半个翼展长度旋转速度120 度/秒 2. 尾旋进入 不同型号飞机&#xff0c;其尾旋特点不…

2023-简单点-什么是protobuf?

protobuf mother: 谷歌 作用 序列化 人话&#xff1a; 存储数据的一种结构 优势在&#xff1f; 类型安全 易用性好 序列化/反序列性能好 兼容性好 不仅可以定义结构体&#xff0c;还可以定义rpc服务接口 劣势在&#xff1f; 可读性较差&#xff1a;没有schema的情况下&a…

element的el-select给下拉框添加背景

第一步 :popper-append-to-body"false" <el-selectv-model"value"placeholder"请选择":popper-append-to-body"false"><el-optionv-for"item in options":key"item.value":label"item.label&quo…

web自动化测试工具之Selenium的使用

Selenium的使用 Selenium概述工作原理应用场景安装浏览器驱动 基本使用安装Selenium模块注意点使用分析代码实现 常见方法driver对象定位标签元素与获取标签对象获取文本内容与属性值 使用无界面浏览器使用pyantomjs驱动设置chrome启动参数 其他操作窗口切换ifrme切换设置User-…

ERR_PNPM_NO_GLOBAL_BIN_DIR Unable to find the global bin directory

错误提示 ERROR Unable to find the global bin directory Run "pnpm setup"to create it automatically, or set the global-bin-dir setting, or the PNPM HOME env variable.The global bin directory should be in the PATH.错误&#xff0c;找不到全局bin目录 …

Web跨域问题

目录 一、引言二、跨域问题1.同源策略2.跨域3.出现跨域问题的情况 三、解决方案1.普通web&#xff0c;使用Filter过滤器2.SpringBoot项目&#xff0c;使用CrossOrigin注解 四、示例 一、引言 在web开发的过程中&#xff0c;因为前后端的分离我们经常会遇到跨域问题&#xff0c…

私人问答网站搭建指南:Ubuntu+Cpolar+Tipas

文章目录 前言2.Tipask网站搭建2.1 Tipask网站下载和安装2.2 Tipask网页测试2.3 cpolar的安装和注册 3. 本地网页发布3.1 Cpolar临时数据隧道3.2 Cpolar稳定隧道&#xff08;云端设置&#xff09;3.3 Cpolar稳定隧道&#xff08;本地设置&#xff09; 4. 公网访问测试5. 结语 前…

Spring MVC 六 - DispatcherServlet处理请求过程

前面讲过了DispatcherServlet的初始化过程&#xff08;源码角度的DispatcherServlet的具体初始化过程还没说&#xff0c;先放一放&#xff09;&#xff0c;今天说一下DispatcherServlet处理请求的过程。 处理过程 WebApplicationContext绑定在当前request属性上&#xff08;属…

SpringMVC多文件上传

文章目录 一、文件上传1.1 导入pom依赖1.2 配置文件上传解析器1.3 设置文件上传表单1.4 实现文件上传 二、文件下载三、多文件上传四、JRebel的使用 一、文件上传 1.1 导入pom依赖 <commons-fileupload.version>1.3.3</commons-fileupload.version><dependency…

springboot第40集:架构师写的代码,那叫一个优雅

事务的隔离性上&#xff0c;从低到高可能产生的读现象分别是&#xff1a;脏读、不可重复读、幻读。 脏读指读到了未提交的数据。 不可重复读指一次事务内的多次相同查询&#xff0c;读取到了不同的结果。 幻读师不可重复读的特殊场景。一次事务内的多次范围查询得到了不同的结果…

系统测试AC5. AC6. IAR和GCC调试效果,MDK AC6不开优化调试乱跳,甚至倒序执行

首先感谢大家对上一个视频的点评回复&#xff0c;非常有意义的讨论&#xff0c;这次AC6的表现更新惊呆&#xff0c;不开优化都可以乱跳。 【实验目的】 同样的程序代码&#xff0c;目的是测试C环境的调试现象。 【实验版本】 IAR版本 &#xff1a;9.3x MDK版本&#xff1a;5…

开赛啦!第六届“中国法研杯”司法人工智能挑战赛精彩启幕

9月9日&#xff0c;第六届“中国法研杯”司法人工智能挑战赛&#xff08;简写为“LAIC2023”&#xff09;在福建厦门正式拉开帷幕&#xff0c;主办方中国司法大数据研究院&#xff08;以下简称“中国法研”&#xff09;以及厦门市思明区政府、厦门海丝办有关领导共同参加了启动…

No1.详解【2023年全国大学生数学建模竞赛】C题——蔬菜类商品的自动定价与补货决策(代码 + 详细输出 + 数据集代码 下载)

时间告诉你什么叫衰老,回忆告诉你什么叫幼稚。不要总在过去的回忆里纠缠,昨天的太阳,晒不干今天的衣裳。 🎯作者主页: 追光者♂🔥 🌸个人简介: 💖[1] 计算机专业硕士研究生💖 🌿[2] 2023年城市之星领跑者TOP1(哈尔滨)🌿 🌟[3] 2022年度博客…

Java低代码核心引擎:jvs-list(列表)按钮配置与数据权限配置

一、列表页按钮配置 按钮类型 A、表级按钮&#xff1b;B、行级按钮&#xff0c;表级按钮往往用作新增或者是整体性的操作&#xff0c;行级按钮主要用于对单行数据的操作。行级按钮超过3个自动折叠。 按钮增减 系统内置了 新增、删除、修改、详情、导入、导出、模板下载这几个…

DBeaver Community抢先体验版下载

https://dbeaver.io/files/ea/ 根据自己使用的平台&#xff0c;按需下载。

分享一下鲜花店怎么在小程序上做商城功能

随着互联网的普及和移动支付的便捷性&#xff0c;越来越多的人选择在线上购物。对于鲜花店来说&#xff0c;通过开发小程序上的商城功能&#xff0c;可以拓宽销售渠道、提高用户体验&#xff0c;同时提升品牌知名度。本文将探讨如何为鲜花店在小程序上实现商城功能。 对于鲜花店…

第2次实验:Ethernet

目的&#xff1a; 要探索以太网帧的细节。以太网是一种流行的链路层协议&#xff0c;在你的课文的第4.3节中有介绍&#xff1b;现代计算机连接到以太网交换机&#xff08;第4.3.4节&#xff09;&#xff0c;而不是使用经典的以太网&#xff08;第4.3.2节&#xff09;。在做这个…

细说GNSS模拟器的RTK功能(三)应用实例01——运行和分析模拟

在上期文章中我们介绍了基于RTCM插件来模拟RTCM使用的硬件和软件设置&#xff0c;本期文章我们将继续进行运行和分析模拟。 使用RTCM插件 运行和分析模拟 连接Ublox接收器 虽然采用了Novatel接收器进行模拟来获得更好的位置精度&#xff0c;但也同样适用于Ublox接收器。要将…

管理类联考——数学——汇总篇——知识点突破——应用题——植树

⛲️ 一、考点讲解 开放型植树 植树数量 总长 间隔 1 植树数量\frac{总长}{间隔}1 植树数量间隔总长​1封闭型植树 植树数量 总长 间距 植树数量\frac{总长}{间距} 植树数量间距总长​ 二、考试解读 本考点要注意开放型与封闭型植树公式的区别。本考点的难点在于变间距…