Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

GR-PA

Treue Seele

Beiträge: 326

Wohnort: Daheim

Beruf: Faulenzer

  • Private Nachricht senden

11

08.08.2011, 11:25

Ähhhm....
Ok...
Schau dir mal die Datei StateMachine.h gaaanz genau an... (insbesondere die Erste Zeile)...
Verbinde die Entdeckung mit der Tatsache, dass zuerst GameState.h und dann StateMachine.h eingebunden werden...
Jetzt solltest du die Erklärung dafür haben, warum CStateMachine eben NICHT definiert sondern nur deklariert ist...
Signaturen werden überbewertet

12

08.08.2011, 11:51

Ja daran hab ich ja auch schon gedacht, aber die Klasse CStateMachine speichert ja einen Pointer auf CGameState. Also muss CGameState ja auch schon deklariert sein. Von daher hab ich GameState zuerst eingebunden. Außerdem wurde im Buch ja auch nichts gegenteiliges behauptet.

13

08.08.2011, 12:03

Ich seh gerade es hat sich noch ein Fehler eingeschlichen. In StateMachine.h Zeile 15 müsste es heißen

C-/C++-Quelltext

1
2
3
.... , void* pInitializationData ....
//anstatt:
.... , void pInitializationData .... 

GR-PA

Treue Seele

Beiträge: 326

Wohnort: Daheim

Beruf: Faulenzer

  • Private Nachricht senden

14

08.08.2011, 14:37

Ich wollte dir damit folgendes mitteilen:

C-/C++-Quelltext

1
2
3
#include "GameState.h"
#include "StateMachine.h"
#include "Intro.h"

=>

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#ifndef GAMESTATE_H
#define GAMESTATE_H
class StateMachine;
/*...*/
#endif // GAMESTATE_H


#ifndef GAMESTATE_H // copy&paste fehler?
#define GAMESTATE_H

// Definition der Klasse CStateMachine wird übersprungen weil GAMESTATE_H bereits definiert ist
class CStateMachine
{
/*...*/
};

#endif // GAMESTATE_H

#ifndef INTRO_H
#define INTRO_H

class CIntro : public CGameState
{
/*...*/
};

#endif // INTRO_H


Direkt dahinter steht dann

C-/C++-Quelltext

1
2
class CPotionMaster : public CStateMachine
{/*...*/};

Hier ist CStateMachine aber NICHT DEFINIERT

Das Problem hab ich übrigens sofort gesehen, weil mein heiß geliebtes Visual Studio den Inhalt von StateMachine.h ausgegraut hat... kann CodeBlocks das eig. nicht?
Signaturen werden überbewertet

15

08.08.2011, 18:20

Ach du ahnst es nicht... Das ist ja gut peinlich... Tja trotzdem nochmal tausend dank! Das wäre mir nie aufgefallen. Und nein Code::Blocks graut das nicht aus. Vielleicht sollte ich mal einen Featurerequest machen. Wäre nämlich in meinem Fall extrem praktisch gewesen.

Moral der Geschicht: Copy&Paste ist BÖSE :)

Danke nochmal an alle!

Werbeanzeige