Такой файл компилируется с ошибками типа error: 'Player' does not name a type (понятно это ж пространсто имён). Проблема, похоже, в заголовочных файлах: они где то взаимоисключаются, поэтому я убрал includ'ы и добавил объявления классов, но ошибка не исчезла. Почему, ведь я использую только указатели и ссылки, а им должно хватать и обявления?
#ifndef _TABLE_HPP_
#define _TABLE_HPP_
class Ball::CBall;
class Player::CPlayer;
namespace Table {
class CTable {
public:
CTable (unsigned int Width, unsigned int Height);
inline unsigned int getWidth () const;
inline unsigned int getHeight () const;
inline Player::CPlayer & getLeftPlayer ();
inline Player::CPlayer & getRightPlayer ();
inline Ball::CBall & getBall ();
private:
unsigned int d_Width;
unsigned int d_Height;
Player::CPlayer * d_Left_Player;
Player::Cplayer * d_Right_Player;
Ball::CBall * d_Ball;
};
}
#endif
#ifndef _TABLE_HPP_
#define _TABLE_HPP_
namespace Ball
{
class CBall;
}
namespace Player
{
class CPlayer;
}
namespace Table {
class CTable {
public:
CTable (unsigned int Width, unsigned int Height);
inline unsigned int getWidth () const;
inline unsigned int getHeight () const;
inline Player::CPlayer & getLeftPlayer ();
inline Player::CPlayer & getRightPlayer ();
inline Ball::CBall & getBall ();
private:
unsigned int d_Width;
unsigned int d_Height;
Player::CPlayer * d_Left_Player;
Player::CPlayer * d_Right_Player;
Ball::CBall * d_Ball;
};
}
#endif
Я то думал он сам догадается... Впрочем, хотя проблемы нет здесь она вылезла в другом месте, видимо, прдётся разгребать фарш из файлов. Тем не менее спасибо.