我试图了解 POD 类型以及它们是如何在堆栈上分配和初始化的。给定
class A {
public:
A();
int x;
};
class B {
public:
int x;
};
int func()
{
A a;
B b;
}
我是否正确地说 b 在 a 之后分配但在 a 之前初始化?我的意思是按照声明的顺序为 a 和 b 分配空间,但是在分配空间时初始化 b 并在声明时初始化 a?
我在这里阅读了关于 POD 和聚合的非常好的常见问题解答 什么是聚合和 POD 以及它们如何/为什么特别?
他说的其中一件事是:非 POD 类类型的对象的生命周期从构造函数完成时开始,到析构函数完成时结束。对于 POD 类,生命周期从对象的存储被占用时开始,并在该存储被释放或重用时结束。
所以我试图了解如何分配和初始化 POD 的细节,以及它与非 POD 的不同之处。