IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Преждевременное обявление, C++
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 56
Пол: Мужской

Репутация: -  2  +


Такой файл компилируется с ошибками типа 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



Сообщение отредактировано: Игорь -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

Репутация: -  627  +


Цитата
понятно это ж пространсто имён
Чего ж ты не пишешь этого, чтобы компилятору тоже было понятно?
#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
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 56
Пол: Мужской

Репутация: -  2  +


Я то думал он сам догадается... Впрочем, хотя проблемы нет здесь она вылезла в другом месте, видимо, прдётся разгребать фарш из файлов. Тем не менее спасибо.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 23.12.2024 19:30
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name