在结构中创建某个结构的数组.

Mon*_*tor 2 c++ arrays struct

我有一个叫做场景的结构.在名为scene的结构中,我需要创建一个其他场景对象的数组.这可能吗?

Set*_*gie 8

不,因为在scene完全定义之前,编译器不知道它有多大,并且不知道制作数组的大小.

但是,你可以有数组的指针scene,因为指针(不计指针成员和其他古怪-感谢纳瓦兹)都是一样的尺寸:

class scene {
    scene* array[20];
};
Run Code Online (Sandbox Code Playgroud)

或者,您可以存储指向分配给new[]和取消分配的动态数组的指针delete[]:

class scene {
    scene() : array(new scene[20]) { }
    ~scene() { delete[] array; }

    scene* array;
};
Run Code Online (Sandbox Code Playgroud)

或甚至更可替代地,存储vector<scene>,一个vectorsceneS:

class scene {
    vector<scene> array;
};
Run Code Online (Sandbox Code Playgroud)

并且vector,你得到一个可调整大小的数组,没有手动内存管理.