gpt4 book ai didi

c++ - 为什么一个类和它的对象的大小总是相同的

转载 作者:行者123 更新时间:2023-11-27 23:06:25 30 4
gpt4 key购买 nike

我创建了一个虚拟析构函数,它为基类创建了一个虚拟表。我对虚拟指针为对象创建的额外大小很好,但不知道为什么类的大小也会增加。

创建虚表对基类大小有影响吗??

请检查

#include<iostream>
using namespace std;
class xxx{
int x;
char j;
public:
virtual ~xxx()
{
cout<<"destructor"<<endll
}
};

int main(int argc, char *argv[])
{
xxx x1;
cout<<"sizeof class="<<sizeof(xxx)<<endl;

cout<<"size of object="<<sizeof(x1)<<endl;
return 0;
}

最佳答案

sizeof操作符调用有两种形式:

sizeof( type )      
sizeof expression

前者返回 type 实例的大小,而后者返回 expression 返回的对象的大小。特别是,给定 xxx 类型的对象 x1sizeof(xxx)sizeof x1 必须返回相同的值.因此,您不是在比较“对象大小”与“类大小”。

在C++中,没有“类大小”的概念。您可以尝试通过添加 vtable 大小和静态成员大小的总和来估计它,但语言本身并没有为此提供任何方便的工具。

关于c++ - 为什么一个类和它的对象的大小总是相同的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23253891/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com