11

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

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

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

我所做的本质是让一个班级的孩子与父母的类型相同。父母死了,孩子也死了。

4

2 回答 2

16

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

于 2012-06-12T22:41:21.327 回答
7

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

于 2012-06-12T22:42:35.977 回答