【发布时间】:2012-06-15 21:07:37
【问题描述】:
我一直认为 struct 是一个固定大小的对象,虽然似乎没有任何明显的编译器错误,但我想知道这样做是否通常是一种好的做法。将结构更改为类是否更可取,还是结构也可以这样做?
代码,只是因为人们变得挑剔:
struct Sprite
{
float x;
float y;
std::vector<Sprite> sprite;
}
我所做的本质是让一个类的子类与父类的类型相同。父母死了,孩子也死了。
【问题讨论】:
-
A
struct只是一个默认可见性为public而不是private的类。 -
请注意,将具有构造函数/析构函数的成员添加到结构会使编译器也为该结构发出构造函数/析构函数。暗示 POD 结构的 C 风格技术将不起作用。
-
在结构中存储一个向量不会改变它的大小。 Vector 的项存储在堆上,因此结构的大小保持不变,无论向量有 0 个元素还是 1000 个元素。