C++ C# Javascript 面向对象实现对比

本文详细解析了C++中对象的内存结构,包括没有虚函数的类对象和含有虚函数的类对象的不同内存布局方式。阐述了虚表指针的作用及如何指向虚表,并解释了虚表中保存虚函数指针的方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 对象的内存结构

C++:对于没有虚函数的类构造出的对象,对象本身是其所有成员变量的集合,其大小恰好等于,如果对象没有任何成员变量,那么它也至少要占1字节。如果有虚函数,那么C++对象的内存低位会有一个1字长的虚表指针。虚表指针指向虚表,C++的虚表中保存着虚函数指针,它的大小为虚函数个数x字长。
        假如有一个C++类

class m
{
public:
    
int a=1;
    
char b='a';
    
virtual int f(int);
}

int m:f(int i)    
{
        
return i;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值