在C++中, class 和struct的区别只有一点, 一个默认为private访问, 一个访问级别默认为public.
(1)允许成员是类对象么? 这里的是string,我没有对它初始化字串,
当然允许, string默认构造初始化为空字符串
(2)如果以后对它们赋值,string类是不知道大小的
string类自己管理内存大小, 你只要赋值就可以了, 不需要担心.
(3)这样结构稳定么?!
为什么不稳定.
(4)大小会自适应么?
结构体的大小就是sizeof(mystructA), string中的字符串由于其属于动态内存, 不算在内
(5)可以这样做么?
可以
(6)还有一些什么细节会发生变化?
基本上没有.
呵呵,怎么不稳定,如果你想了解更多,就要看看string的实现了。
这种用法是正确的,类对象放到结构体里当然没有问题。但最好不要把函数放进去,如果那样的话,就干脆做到class算了。
楼上说的很对啊,关键是这个类对象从声明到销毁的sizeof 是不能变的。 否则就只能使用类对象指针。 从这个问题,你也可以知道string类的数据成员就是个指针,所需内存是被动态分配的。