C++ 不完整类型不允许类内部使用?

标签 c++ class types nested

我有一个 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/

相关文章:

c++ - 如何制作一个typedef或用于指向类模板的方法指针?

c++ - 具有多个 .h 和 .cu 文件的静态库无法解析函数

c++ - wxwidgets - 以正确的方式退出线程

c++ - 具有某些成员的类的术语

c++ - 如何使用STL中的容器读取文件

c++ - 递归函数中的段错误 C++

forms - 如何更改提交按钮类?

vb6 - Visual Basic 6.0 中的自动类型转换

types - 这种模式似乎很详尽,但我仍然收到警告

haskell - 使用不包含在类头中的不明确类型变量实现实例方法