C++ 是否可以/建议在结构中存储向量?C++;
我一直认为结构是一个固定大小的对象,虽然似乎没有任何明显的编译器错误,但我想知道这样做是否通常是一种好的做法。将结构更改为类是更可取的还是结构也可以 代码,只是因为人们变得挑剔:C++ 是否可以/建议在结构中存储向量?C++;,c++,vector,struct,C++,Vector,Struct,我一直认为结构是一个固定大小的对象,虽然似乎没有任何明显的编译器错误,但我想知道这样做是否通常是一种好的做法。将结构更改为类是更可取的还是结构也可以 代码,只是因为人们变得挑剔: struct Sprite { float x; float y; std::vector<Sprite> sprite; } struct-Sprite { 浮动x; 浮动y; 矢量精灵; } 我所做的本质是让一个类的子类与父类具有相同的类型。当父对象死亡时,子对象也会死亡。一
struct Sprite
{
float x;
float y;
std::vector<Sprite> sprite;
}
struct-Sprite
{
浮动x;
浮动y;
矢量精灵;
}
我所做的本质是让一个类的子类与父类具有相同的类型。当父对象死亡时,子对象也会死亡。一个
std::vector
有一个特定的已知大小,包含它的任何类或结构都有一个特定的已知大小std::vector
在堆上分配内存作为可变大小的数组,并存储指向所述内存的指针。结构和类之间唯一的区别是结构默认为公共,类默认为私有。结构和类之间的区别与成员可见性有关:struct
的成员默认为公共,而且默认情况下,struct
的继承是公共的<默认情况下,code>class成员和class
继承都是私有的。除此之外,没有区别:您可以始终使用struct
编写代码,该结构生成的代码与使用class
编写的代码相同,反之亦然。Astruct
只是一个默认可见性为public
的类,而不是private
。请注意,向结构中添加具有构造函数/析构函数的成员会使编译器也为该结构发出构造函数/析构函数。暗示POD结构的C风格技术不会起作用。在结构中存储向量不会使其改变大小。Vector的项存储在堆上,因此结构的大小保持不变,无论Vector包含0或1000个元素。谢谢。这显然是有道理的,向量只能作为指向堆中内存的指针。谢谢你的详细答复。