在C++中提前定义类

Max*_* Z. 0 c++ pointers class

可能重复:
具有前向声明错误的循环依赖项

我有两个文件,一个定义结构(这里是:ports),另一个定义一个类(这里是:device).由于类使用这些结构作为端口,因此它们需要链接到类,最好是通过指针.但是,如果尚未定义设备类,如何创建此指针?

这大致是我希望代码看起来像......

backbone.h:

typedef struct aPort {
    std::string portName;
    Device *ptrDeviceThatOwnsPort;
} port;
Run Code Online (Sandbox Code Playgroud)

device.h中:

#include "backbone.h"

class Device {
}
Run Code Online (Sandbox Code Playgroud)

...但这显然会在backbone.h中抛出一个错误,说没有定义Device.我尝试简单地将设备头部包含在主干头文件中,位于typedef前面,但这不起作用,因为每个头部都依赖于另一个头部.在某个地方我已经读过,在Objectve-C中有一些东西沿着"前面的类定义"左右(没有在Obj-C中编码很长一段时间),所以在C++中有类似的东西吗?或者是否有更好的解决方案来解决我的问题?

非常欢迎任何帮助,并提前感谢.

For*_*veR 6

使用前向声明.

class Device;

typedef struct aPort {
    std::string portName;
    Device *ptrDeviceThatOwnsPort;
} port;
Run Code Online (Sandbox Code Playgroud)