r00t~
Lt. Junior Grade
- Registriert
- Jan. 2011
- Beiträge
- 341
Guten Morgen,
Hab vor einigen Monaten in Java ein kurzes Spiel geschrieben. Da ich C++ lernen möchte, habe ich mir vorgenommen, den Code in C++ "umzuschreiben", so gut eben möglich (Habe den Großteil meiner Java-Kenntnisse durch Umschreiben von Python-Code in Java). Nach Anpassung des Glut-Besipiels komme ich bei der Referenzierung der Klassen untereinander nicht weiter: Es soll eine Instanz der Klasse "Engine" erzeugt werden, welche wiederum jeweils eine Instanz der Klassen "Player" und "Balls" erzeugen soll. Dabei soll diesen Instanzen eine Referenz auf die Klasse Engine übergeben werden. Bei dem jetzigen Code erscheinen die Fehlermeldungen "field 'ref' has incomplete type" und "field 'player' hasincomplete type".
Ausschnitt aus dem main-Teil:
Engine Header:
Engine Source:
Player Header:
Player Source:
Balls Header:
Balls Source:
Bitte um Rat!
Hab vor einigen Monaten in Java ein kurzes Spiel geschrieben. Da ich C++ lernen möchte, habe ich mir vorgenommen, den Code in C++ "umzuschreiben", so gut eben möglich (Habe den Großteil meiner Java-Kenntnisse durch Umschreiben von Python-Code in Java). Nach Anpassung des Glut-Besipiels komme ich bei der Referenzierung der Klassen untereinander nicht weiter: Es soll eine Instanz der Klasse "Engine" erzeugt werden, welche wiederum jeweils eine Instanz der Klassen "Player" und "Balls" erzeugen soll. Dabei soll diesen Instanzen eine Referenz auf die Klasse Engine übergeben werden. Bei dem jetzigen Code erscheinen die Fehlermeldungen "field 'ref' has incomplete type" und "field 'player' hasincomplete type".
Ausschnitt aus dem main-Teil:
Code:
#include "include/Player.h"
#include "include/Balls.h"
#include "include/Engine.h"
(...)
Engine engine;
Engine Header:
Code:
#ifndef ENGINE_H
#define ENGINE_H
#include "Player.h"
#include "Balls.h"
class Player;
class Balls;
class Engine
{
public:
inline Engine();
inline void readyUp();
//~Engine(){};
private:
Player player;
Balls balls;
double delta_t;
int balls_survived;
bool question_restart;
};
#endif // ENGINE_H
Engine Source:
Code:
#include "../include/Engine.h"
Engine::Engine()
{
delta_t = 0.001;
balls_survived = 0;
question_restart = false;
}
void Engine::readyUp()
{
player = new Player(this);
balls = new Balls(this);
}
Player Header:
Code:
#ifndef PLAYER_H
#define PLAYER_H
#include "Engine.h"
class Engine;
class Player
{
public:
Player(Engine);
protected:
private:
Engine ref;
};
#endif // PLAYER_H*/
Player Source:
Code:
#include "../include/Player.h"
Player::Player(Engine pref)
{
ref = pref;
}
Balls Header:
Code:
#ifndef BALLS_H
#define BALLS_H
#include "Engine.h"
class Engine;
class Balls
{
public:
Balls(Engine);
protected:
private:
Engine ref;
};
#endif // BALLS_H
Balls Source:
Code:
#include "../include/Balls.h"
Balls::Balls(Engine pref)
{
ref = pref;
}
Bitte um Rat!