gpt4 book ai didi

C++ 对象大小

转载 作者:可可西里 更新时间:2023-11-01 15:46:02 25 4
gpt4 key购买 nike

假设我有:

struct Foo: public Bar {
....
}

Foo 没有引入新的成员变量。 Foo 只引入了一堆成员函数&静态函数。 C++ 标准的任何部分现在是否向我保证:

sizeof(Foo) == sizeof(Bar)

?

谢谢!

最佳答案

我至少可以想到一种情况,其中 sizeof(Foo) != sizeof(Bar):

class Bar {
public:
int m_member;
};

class Foo : Bar {
virtual ~Foo();
};

Foo 将有一个 vtable 指针,而 Bar 不会,前者的大小将比 Bar 大一个字。在 32 位 DEBUG MSVC2010 上:

sizeof(Foo) - 8
sizeof(Bar) - 4

编辑 这适用于结构和类,我重新运行测试以确认这一点。

关于C++ 对象大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2785497/

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