#ifndef UIH
#define UIH
#include <system.hpp>
#include "Main.h"
#include "Game.h"
class UI {
public:
UI(Game *game); // ) expected
private:
Game *_game;
};
#endif
ошибка ") expected"
т.к. в приведенном коде синтаксических ошибок нет.
это все что выдал.
вот game.h
Код:
#ifndef GameH
#define GameH
#include <system.hpp>
#include <vector>
#include "Player.h"
#include "UI.h"
class Game {
public:
Game(const AnsiString &playerName, const AnsiString &playerDeckName, vector<AnsiString> &opponentsNames, vector<AnsiString> &opponentsDecksNames);
//get
Player* player() {return _player;}
vector<Player*> opponents() {return _opponents;}
//
private:
Player *_player;
Player *_currentOpponent;
vector<Player*> _opponents;
UI *_ui;
};
#endif
#define GameH
#include <system.hpp>
#include <vector>
#include "Player.h"
#include "UI.h"
class Game {
public:
Game(const AnsiString &playerName, const AnsiString &playerDeckName, vector<AnsiString> &opponentsNames, vector<AnsiString> &opponentsDecksNames);
//get
Player* player() {return _player;}
vector<Player*> opponents() {return _opponents;}
//
private:
Player *_player;
Player *_currentOpponent;
vector<Player*> _opponents;
UI *_ui;
};
#endif
game.cpp
Код:
#pragma hdrstop
#include "Game.h"
#pragma package(smart_init)
using namespace std;
Game::Game(const AnsiString &playerName, const AnsiString &playerDeckName, vector<AnsiString> &opponentsNames, vector<AnsiString> &opponentsDecksNames)
{
_player = new Player(playerDeckName, playerName);
_currentOpponent = new Player(opponentsDecksNames[0], opponentsNames[0]);
for (unsigned char i = 0; i < opponentsDecksNames.size(); ++i) {
Player *opponent = new Player(opponentsDecksNames, opponentsNames);
_opponents.push_back(opponent);
}
_ui = new UI(this);
}
#include "Game.h"
#pragma package(smart_init)
using namespace std;
Game::Game(const AnsiString &playerName, const AnsiString &playerDeckName, vector<AnsiString> &opponentsNames, vector<AnsiString> &opponentsDecksNames)
{
_player = new Player(playerDeckName, playerName);
_currentOpponent = new Player(opponentsDecksNames[0], opponentsNames[0]);
for (unsigned char i = 0; i < opponentsDecksNames.size(); ++i) {
Player *opponent = new Player(opponentsDecksNames, opponentsNames);
_opponents.push_back(opponent);
}
_ui = new UI(this);
}
UI.cpp
Код:
#pragma hdrstop
#include "UI.h"
#pragma package(smart_init)
UI::UI(Game *game)
{
_game = game;
AnsiString tmp;
tmp += _game->player()->name();
MainForm->PlayerInfoSpeedButton->Caption =
_game->player()->name() + " | " +
_game->player()->life() + " / 0";
}
#include "UI.h"
#pragma package(smart_init)
UI::UI(Game *game)
{
_game = game;
AnsiString tmp;
tmp += _game->player()->name();
MainForm->PlayerInfoSpeedButton->Caption =
_game->player()->name() + " | " +
_game->player()->life() + " / 0";
}
По делу, у вас реализованы не все функции-члены в Гаме. Так же проблема может быть в таком "ординарном" включении файлов. Это единственная ошибка? Могу предположить, что компилятор просто не видит класс гаме.
Что гадать без "ui.h".
Цитата: Artem_3A
Оу, мусье знает толк в извращениях! (с)
Так же проблема может быть в таком "ординарном" включении файлов.
Так же проблема может быть в таком "ординарном" включении файлов.
видимо в этом вся проблема. как правильно включать файлы?