我一直认为 struct 是一个固定大小的对象,虽然似乎没有任何明显的编译器错误,但我想知道这样做是否通常是一种好的做法。将结构更改为类是否更可取,或者结构也可以这样做?
代码,只是因为人们变得挑剔:
struct Sprite
{
float x;
float y;
std::vector<Sprite> sprite;
}
我所做的本质是让一个班级的孩子与父母的类型相同。父母死了,孩子也死了。
Anstd::vector
具有特定的已知大小,并且包含它的任何类或结构都具有特定的已知大小。std::vector
在堆上分配内存以充当可变大小的数组并存储指向所述内存的指针。结构和类之间的唯一区别是结构默认是公共的,而类默认是私有的。
与成员可见性的区别struct
和class
关系:最显着的区别是struct
' 的成员默认是公共的,而struct
' 的继承默认是公共的;class
默认情况下,成员和class
继承都是私有的。除此之外,没有区别:您始终可以编写代码struct
,生成与使用编写的代码等效的代码class
,反之亦然。