Предварительное объявление класса в заголовочных файлах

Player.h

#ifndef PLAYER_H
#define PLAYER_H
class ResourcePack
{
protected:
// something
};

class Player : ResourcePack
{
public:
// something
};
#endif

Render.h

#ifndef RENDER_H
#define RENDER_H

#include <vector>

class ResourcePack;
class Player : ResourcePack; // Синтаксическая ошибка

class Render
{
public:
    ::std::vector<Player>& rfvPlayer;
};

#endif

Дополнительно - Machine.h

#ifndef MACHINE_H
#define MACHINE_H

#include <vector>
#include "Player.h"

class Machine
{
public:
::std::vector<Player> vPlayer;
};
#endif

В последствии я собираю все заголовочные файлы в одном заголовочном файле.

#ifndef GAMEKERNEL_H
#define GAMEKERNEL_H

#include "Machine.h"
#include "Render.h"

// something

#endif

Как можно предварительно объявить класс Player в файле Render.h (так как он наследуется от класса ResourcePack, ничего не выходит)?


Ответы (1 шт):

Автор решения: KoVadim

При предварительном наследовании не указывают кто от кого наследуется. Просто слово class, имя класса и точка с запятой.

→ Ссылка