在类中声明struct

gar*_*n06 1 c++ struct class

我正在阅读一个游戏框架,它有一个Door struct内部Room class如下:

#include <vector>

class Room{
public:
    struct Door{
        unsigned name;
        unsigned orientation;
        Room* room1;
        Room* room2;
    };
    std::vector<Door*> adjacent;
};
Run Code Online (Sandbox Code Playgroud)

在类中定义结构的目的是什么?而且,结构定义的访问修饰符是否有所不同?

K-b*_*llo 5

在类中定义结构的目的是什么?

它只是一种嵌套类型.

而且,结构定义的访问修饰符是否有所不同?

如果Door声明了,private那么尝试在此类Room::Door之外声明类型的变量将产生错误.