Помощь - Поиск - Пользователи - Календарь
Полная версия: Преждевременное обявление
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
Игорь
Такой файл компилируется с ошибками типа 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

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