我有一个 header Room.h
定义如下:
#ifndef ROOM_H
#define ROOM_H
class Room
{
public:
Room();
private:
Room north;
Room south;
Room east;
Room west;
};
#endif
但是对于每个 Room
变量,我都得到了 Error: incomplete type is not allowed
。这种设计是否存在根本性缺陷?
最佳答案
是的,设计存在致命缺陷。你是说每个房间包含另外四个房间。然后,每一个都将包含另外四个房间——这四个房间中的每一个都将包含另外四个房间,依此类推。简而言之,从一个房间开始,包含了无数个其他房间。
您可以创建一个包含指向其他四个房间的指针的房间。然后您可以为那些要连接的房间创建房间,但是(重要的是)当您到达链的末端时,您可以创建一个房间,该房间在没有更多房间的方向上具有空指针。
关于C++ 不完整类型不允许类内部使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23750558/