首页 > 其他分享 >对于类对象的size

对于类对象的size

时间:2024-01-31 14:22:32浏览次数:49  
标签:变量 对于 对象 成员 运算符 内存 计算 sizeof size

对于类来说,可以使用sizeof运算符来计算其占用的内存空间大小。sizeof运算符返回的是一个对象或类型所占用的字节数。

当类的成员变量是固定的、非动态申请内存分配的时候,可以通过sizeof运算符来计算类的大小。sizeof运算符会计算类的所有成员变量的大小,并加上任何可能的填充字节,以确保对齐要求。

需要注意的是,sizeof运算符计算的是对象的静态大小,不包括动态分配的内存。如果类中包含指针成员变量,sizeof运算符只会计算指针本身的大小,而不会计算指针指向的内存空间的大小。

总之,对于类来说,如果成员变量是固定的、非动态申请内存分配的,可以通过sizeof运算符来计算类的大小。

所以如果成员变量是固定的类型,无论是基本类型还是定义的结构体,都可以计算;

但对于包括指针,动态申请内存的成员对象变量,是无法通过sizeof来评估的,包括将类存在内存的buffer中。

类的成员函数都是进程代码段的内容,这部分本身是进程会加载,不需要额外申请和计算的。

 

标签:变量,对于,对象,成员,运算符,内存,计算,sizeof,size
From: https://www.cnblogs.com/sciapex/p/17999167

相关文章

  • 实体类对象与Vo视图对象转换举例
    实体类对象:packagecom.yupi.ojSystem.model.entity;importcom.baomidou.mybatisplus.annotation.*;importjava.io.Serializable;importjava.util.Date;importlombok.Data;/***题目*@TableNamequestion*/@TableName(value="question")@Datapubl......
  • 深入了解java对象分配
    1.对象的创建在语言层面上,创建对象通常仅仅是一个new关键字而已,而在虚拟机中,对象(对象限于普通Java对象,不包括数组和Class对象等)的创建又是怎样一个过程呢?当Java虚拟机遇到一条字节码new指令时,①首先将去检査这个指令的参数是否能在常量池中定位到一个类的符号引用,并且......
  • Active Directory Group Policy Objects | 活动目录组策略对象 | 介绍 | 配置
    介绍ActiveDirectory(AD)的组策略对象(GroupPolicyObjects,简称GPO),在Windows环境中使用GPO来配置、管理和强制执行网络中的计算机和用户设置。组策略对象(GPO)是策略设置的虚拟集合,GPO具有唯一的名称,例如GUID。组策略设置包含在GPO中,GPO可以表示文档系统和ActiveDirectory......
  • useState返回的为什么是数组而不是对象?
    首先,const[count,setCount]=useState(0)这种语法是ES6的解构赋值语法。数组在解构赋值时,按照返回的顺序一一解构,并且可以重新命名:constfoo=[1,2,3]const[a,b,c]=foo//a=1,b=2,c=3而对象在解构赋值时,必须和useState函数内部返回的对象的key同名:constfood={......
  • 面向对象
    ......
  • [LMXOI Round 1] Size
    \(\sumd_i<=5*10^7\)一定是解题的突破口;可是,该怎么利用这个条件呢?不妨更进一步——考虑数据的特征,发现数字的种类是有限的点击查看代码#include<bits/stdc++.h>usingnamespacestd;intd[2000005],r[2000005];map<int,longlong>q;intread1(){ charcc=getchar()......
  • 【侯捷C++面向对象笔记】补充5-new & delete重载
    平时所使用的new和delete操作,称之为表达式,一般由好几个步骤组成。如上图所示,new表达式会被编译器转化为三个步骤。new表达式不能重载,但其中operatornew是可以重载的。➡️全局::operatornew的重载why不能放在namespace内?因为全局operatornew是放在defaultglobalnamespac......
  • 【侯捷C++面向对象笔记】补充2-pointer-like & function-like class
    关键词:仿函数pointer-like:将一个类设计得像指针一样,通常通过重载*和->操作符实现。function-like:将类的成员设计得能像函数一样使用,通过重载()操作符实现。TipDemo应用:智能指针注意:->符号在作用一次后,会继续作用下去(不同于*号)Foof(*sp):f为一个Foo对象本体,使用时f.m......
  • 【侯捷C++面向对象笔记】补充3-template
    关键词:类模板,函数模板,成员模板,模板特化“泛化”和“特化”TipDemo类模板定义时需要显式地指定类型名。函数模板定义时编译器自动进行实参推导类型(但不提供隐式转换)。成员模板:模板中还包含模板模板(全)特化格式:template<>尖括号内为空模板偏特化(partia......
  • 【侯捷C++面向对象笔记】补充4-object model
    关键词:虚函数表,动态绑定,多态每个对象都维护自己的虚表指针,指向类的虚函数表。(所以对象的size比其包含的所有数据size多4,即虚指针大小)➡️动态绑定:(多态的实现原理)通过指针p找到对象c的vptr通过vptr找到classC的vtbl在vtbl中找到第n个虚函数并调用➡️子类调用父类函数隐......