【发布时间】:2023-04-04 13:23:01
【问题描述】:
我正在尝试编写一个小游戏,其中轨道上有砖块。
我的问题是我想在轨道类中有一个砖块向量,但我需要在砖块类中保留一个指向轨道的指针。
我想做的是有两个头文件 track.h 和brick.h,我想在brick.h 文件中包含track.h,反之亦然。
brick.h:
#pragma once
#include "track.h"
class brick
{
public:
brick (track &theTrack);
private:
track *mTrack;
};
brick::brick(track &theTrack)
{
mTrack = &theTrack;
}
track.h:
#pragma once
#include "brick.h"
class track
{
public:
private:
vector<brick> brickPositions;
};
但是这会导致编译错误。
我不为这些类使用 .cpp 文件,只使用一个顶部带有 #pragma 的单个 .h 文件。
您能解释一下问题是什么,我该如何解决?
【问题讨论】:
-
指针成员的前向声明应该足够了。
-
...前提是您在 cpp 文件中编写实现
标签: c++ class oop pointers header-files