未定义的类

时间:2016-03-19 22:16:48

标签: c++ visual-studio class

我使用正向引用引用了2个类,但是我仍然在每个类中遇到类实例声明错误。 注意:如果与它有任何关系,我正在使用DirectX和版本控制吗?

Game.h:

#ifndef GAME_H
#define GAME_H

class Player;

class Game {
public:
     Player player;  // Undefined class error here
//...
};

#endif

Player.h:

#ifndef PLAYER_H
#define PLAYER_H

class Game;

class Player {
public:
    Game game;  // Undefined class error here
//...
};

#endif

显然有更多的代码,但我认为只包含必要的代码会让你更容易阅读。

非常感谢任何帮助。

非常感谢

1 个答案:

答案 0 :(得分:0)

为了声明特定类型的成员,编译器必须在当时具有该类型的完整声明:

class Player;

class Game {
public:
      Player player; // dunno what this means

你创建了一个不幸的循环依赖,你只能用指针或引用来解决:

// Game.h
#include "player.h"

class Game {
    Player player; // ok
};

// Player.h

class Game;

class Player {
    Game* game;  // ok.
};