C++类在内存中的分配

本文探讨了C++类在内存中的分配,包括32位和64位系统的区别,sizeof运算符的使用,以及类对象的内存结构。重点讲述了类的成员变量和成员函数如何占用内存,特别是虚函数表的机制,以及空类和含有虚函数的类的内存分配特点。
摘要由CSDN通过智能技术生成

在网上看到这样一道题:

这里写图片描述

答案是24字节。

做这道题要理解三个知识点:

一、32位和64位操作系统的区别:32位和64位指的是CPU一次处理数据的能力是32位还是64位,这里涉及到的是处理器运算位数。简单的说32位系统的地址总线是32位的,而64位系统的地址总线是64位的,这意味着一个指针所占用的空间是64位即8个字节。

二、sizeof是用来计算栈大小,不涉及全局区,所以类的静态成员大小sizeof不计算。也就是说,类的成员变量中,只考虑a、p、func1、func2。

三、C++类在内存中的空间分配,这也是本文讲述的重点,下面着重阐述。

注意点1:一个类对象的地址就是类所包含的这一片内存空间的首地址,这个首地址对应具体该类某一个成员变量的地址。
  
  首先看下面这段代码:

#include <iostream> 
using namespace 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值