gpt4 book ai didi

c++ - 类 : size of object of derived class

转载 作者:搜寻专家 更新时间:2023-10-31 02:18:07 24 4
gpt4 key购买 nike

假设我有两个类 A 和 B,如图所示:

class A {
void function1() {
cout<<"hello";
}
int member1;
public:
char member2;
};

class B : public A
{
int member3;
void function2() {
cout<<"Hello to you too";
}
public:
float member4;
};

现在,如果我创建一个 B 类对象,该对象的大小是多少? class A 的继承是private 还是protected 都一样吗?

最佳答案

sizeof 用于 C++ 中的所有类型(char 类型除外,根据定义,sizeof 产生 1 ) 是实现定义的。

根据经验,您不会期望派生类比基类小。但差异(如果有的话)取决于编译器、成员的对齐方式、编译器如何管理填充以确保不同大小(和类类型)的成员对齐等。

我通常不希望访问(publicprotectedprivate)直接影响类类型的大小。编译器可能会根据访问权限选择以不同的顺序存储成员,也可能不会。所以大小可能会或可能不会改变,但不同的编译器可能会做不同的事情。然而,原则上,编译器不需要仅仅因为更改某些成员的访问或继承而更改类类型的大小。

关于c++ - 类 : size of object of derived class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34836117/

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