Такой файл компилируется с ошибками типа 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;
Чего ж ты не пишешь этого, чтобы компилятору тоже было понятно?
#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
Игорь
31.07.2012 21:01
Я то думал он сам догадается... Впрочем, хотя проблемы нет здесь она вылезла в другом месте, видимо, прдётся разгребать фарш из файлов. Тем не менее спасибо.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.