为什么 A 类对象的 the 是 4 个字节(不考虑 B 类和 C 类)。
我如何创建对象 A 以便同时创建 B 和 C?
然后对象的大小会改变吗?如果否,那么对象 B 和 C 是否仍被视为对象 A 本身的一部分?
class A
{
public:
A()
{
a=9;
//B objB; //you wont be able to call since A::B::B() is private
//C objC; //same as above
}
int a;
class B
{
B()
{
b=10;
}
int b;
};
class C
{
public:
int c,d,e,f,g;
};
};
最佳答案
因为,在类 A 中,只有 int a;
是类范围内的成员变量,它被计为类的大小。
在创建对象之前,类本身不占用任何空间。您已经使用以下代码创建了对象,但是如果您将类 B 和 C 的构造函数设为公共(public)构造函数并将其添加到 A 的构造函数中,则代码将不会执行,因为 B 的构造函数是私有(private)的:
B objB;
C objC;
在构造函数中是局部的,在构造函数执行完毕后释放。
关于c++ - 类中类的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51076074/