这对于 C++ 非菜鸟来说可能是显而易见的,但这让我有点难过——一个类的字符串成员是否在该类中分配了可变数量的空间?或者它只是在内部分配一个指向内存中其他空间的指针?例如在这个例子中:
class Parent {
public:
vector<Child> Children;
}
class Child {
public:
string Name;
}
如果我创建一个“new Parent()”并添加一些具有不同长度字符串的子级,它是如何在堆上分配的?是 Parent 4 字节,Child 4 字节(或任何指针大小,加上固定大小的内部数据),然后是堆上其他地方的随机一堆字符串?还是全部捆绑在内存中?
我猜一般来说,容器类型本身总是固定大小的,并且只包含指向其可变大小数据的指针,并且这些数据总是在堆上吗?