是否有可能/建议在结构中存储一个向量? C ++

时间:2012-06-12 22:39:24

标签: c++ vector struct

我一直认为结构体是一个固定大小的对象,虽然似乎没有任何明显的编译器错误,但我想知道这样做是否通常是好的做法。将结构更改为类更可取,还是结构也一样?

代码,只是因为人们变得挑剔:

struct Sprite
{
    float x;
    float y;
    std::vector<Sprite> sprite;
}

我正在做的事情的本质是让一个类的子类与父类相同。当父母去世时,孩子们也会这样做。

2 个答案:

答案 0 :(得分:15)

std::vector具有特定的已知大小,并且包含它的任何类或结构具有特定的已知大小。 std::vector在堆上分配内存以充当可变大小的数组并存储指向所述内存的指针。 struct和class之间的唯一区别是struct默认是public,而class默认是private。

答案 1 :(得分:7)

structclass之间的差异与成员可见性有关:最明显的区别是struct的成员默认是公开的,还有{{1}默认情况下,继承是公共的;默认情况下,struct成员和class继承都是私有的。除此之外,没有区别:您始终可以使用class编写代码,生成与使用struct编写的代码等效的代码,反之亦然。