C++中类的大小实例分析
发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,这篇"C++中类的大小实例分析"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"C++中
千家信息网最后更新 2025年01月18日C++中类的大小实例分析
这篇"C++中类的大小实例分析"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"C++中类的大小实例分析"文章吧。
一、普通类的大小
#includeusing namespace std;class MyClass{public: MyClass(){ int i = 0; float f = 0.01f; }; int getI(){ return i; } int getF(){ return f; }private: int i; float f; //静态变量实际上是其全局变量,它存储在全局/静态存储区,不占对象空间 static int staNum;};int MyClass::staNum = 2;int main(){ MyClass myclass; cout << "myclass的大小" << sizeof(myclass) << endl; return 0;}
我们可以看到,在创建类的对象中,真正占据栈空间的只有两个成员变量,分别为4个字节。静态成员变量实际上与全局变量一起存储在全局存储区,而成员函数则与其他函数一样存在于代码区。
二、空类的大小
#includeusing namespace std;class MyClass{public: MyClass(){};private:};int main(){ MyClass myclass; cout << "myclass的大小" << sizeof(myclass) << endl; return 0;}
在使用类的指针的时候,如果类的的大小为0,那么排在一起的几个空类地址都是一样的话,我们又怎么知道是哪个呢?
三、自动填充类或者结构体的大小
#includeusing namespace std;struct MyStruct1{ bool b1; bool b2; int i1;};struct MyStruct2{ bool b1; int i1; bool b2;};struct MyStruct3{ bool b1; short s1;};int main(){ MyStruct1 s1; MyStruct2 s2; MyStruct3 s3; cout << "MyStruct1的大小" << sizeof(s1) << endl; cout << "MyStruct2的大小" << sizeof(s2) << endl; cout << "MyStruct3的大小" << sizeof(s3) << endl; return 0;}
当我们按照不同的的顺序排列变量的时候会发现,类的大小是不尽相同的。第一种情况,MyStruct中的两个布尔连在一起,如果后面没有变量,编译器会自动填充2个字节;而现在后面还有一个整形i,整形跨越了两个4字节,在读取整形的时候需要两个4字节,因此编译器会在这种情况下也会在i1填充2个字节,从而是i1在下一个字节开始。对于第二种情况,MyStruct2中由于两个布尔类型被整形隔开,我们需要两次填充。第三种情况,MyStruct3中由于short只有两个字节,因此只需要填充一个字节。
以上就是关于"C++中类的大小实例分析"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
大小
字节
变量
两个
内容
全局
情况
存储
实例
实例分析
C++
分析
成员
时候
静态
函数
只有
实际
实际上
对象
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
吴江电力软件开发
泰隆银行软件开发岗公积金
数据库原理及技术 创建表
合肥信创服务器
深圳物流软件开发代码
电脑服务器有哪些
web服务器访问爆满
警校信息网络安全专业课程
青岛口碑好的存储服务器
长沙网络技术公司哪家最好
机票票价数据库
安卓机顶盒改linux服务器
顺平县网络安全委员会
传奇租服务器怎么设置
中石化网络安全
织梦网站栏目数据库表
数据库技术的发展论文
华为服务器开机按
中通杯全国网络安全攻防
深圳市公安局网络安全
郑州禾迅网络技术有限公司
网络技术支持保障承诺
数据库root创建外网
软件开发和信息安全工程师
淄博党性体检软件开发电话
移动营业厅服务器繁忙怎么解决
乐高编程软件开发者
校园网络安全宣传新闻稿
王牌战争怎么创造服务器的教学
昆明学软件开发的职业学校哪个好