【发布时间】:2014-03-11 16:27:23
【问题描述】:
最近在我的代码中出现了一些关于我现在所知道的循环依赖的问题。简而言之,有两个类,Player 和 Ball,它们都需要使用来自对方的信息。在代码中的某个点,两者都将传递对另一个的引用(来自另一个包含两个 .h 文件的类)。
阅读完之后,我从每个文件中删除了#include.h 文件,并进行了前向声明。这解决了能够在彼此中声明类的问题,但是当我尝试访问传递的对对象的引用时,我现在留下了“不完整的类型错误”。周围似乎有一些类似的例子,但经常与更复杂的代码混合在一起,很难缩小到基础。
我已经以最简单的形式(本质上是一个骨架)重写了代码。
球.h:
class Player;
class Ball {
public:
Player& PlayerB;
float ballPosX = 800;
private:
};
播放器.h:
class Ball;
class Player {
public:
void doSomething(Ball& ball);
private:
};
播放器.cpp:
#include "Player.h"
void Player::doSomething(Ball& ball) {
ball.ballPosX += 10; // incomplete type error occurs here.
}
任何帮助理解为什么会这样将不胜感激:)
【问题讨论】:
-
#include "Ball.h"in Player.cpp
标签: c++ class reference forward-declaration