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

1

12.07.2007, 00:36

[Gelöst] error C2143, C4430, C4430

Hi,
kann wer mir plz erklären, warum der Code:

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#ifndef VERWALTER_H
#define VERWALTER_H

#include <iostream>
#include "Singleton.h"
#include "Framework.h"
#include "Sprite.h"
#include "Sound.h"
#include "Intro.h"


using namespace std;

#define g_pVerwalter CVerwalter::Get()

class CVerwalter : public TSingleton<CVerwalter>
{
    public:
    
    void    Init    ();
    void    Run     ();
    void    Quit    ();
    
    inline void BeendeSpiel () {m_bSpiel = false; }

    // Angabe über die zu erwartenden Frames

    static const int FPS = 20;
 
    private:

    void    Event ();

    int     m_iMainState;   // Gibt den Haupt-Zustand an, z.B. MS_INTRO, ...

    bool    m_bGewechselt;  // true = Der Hauptzustand wurde gewechselt, im neuen Zustand

                            // muss die Init ()-Funktion aufgerufen werden.

                            // false = kein Wechsel, Init () muss nicht aufgerufen werden.


    bool    m_bSpiel;       // true = Das Spiel läuft

                            // false = Verwalter::Quit () wird aufgerufen, was dafür sorgt,

                            // dass alles ordentlich beendet wird.


    CIntro* m_pIntro;      // Hier ist der Fehler angeblich


};

// Eine Auflistung aller Hauptzustände

enum EMainStates
    {
      MS_INTRO = 0,
      MS_MENU,
      MS_GAME
    };


#endif

Diese Fehler ausgibt:

Zitat

c:\dev\projekte\tictactoe\verwalter.h(59) : error C2143: Syntaxfehler: Es fehlt ';' vor '*'
c:\dev\projekte\tictactoe\verwalter.h(59) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
c:\dev\projekte\tictactoe\verwalter.h(59) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.


Also ich weiß, dass das heißt, er kennt das CIntro nicht....
Aber die Klasse wird in Intro.h (definiert?) genannt...
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
28
#ifndef INTRO_H
#define INTRO_H

#include "Verwalter.h"


using namespace std;


class CIntro
{
    public:
            CIntro  ();
    
    void    Init    (); 
    int     Run     (); 
    void    Quit    ();
    
    private:

    SDL_Surface* Hintergrund;
    SDL_Surface* Text;


};


#endif


Ich bin mit meinem Latein am Ende, die Klasse wird genannt und includiert und trotzdem kennt er sie nicht...

Für jede Hilfe dankbar
Trein
-- Hier könnte meine Signatur stehen --

2

12.07.2007, 00:48

Enthält Intro ein CVerwalter-Objekt/Verweis/Zeiger? Wenn ja, schreib mal vor die Deklaration von CVerwalter:

C-/C++-Quelltext

1
class Intro;
Mein Projekt: Rise of the Sylvan

3

12.07.2007, 01:02

Danke!! Es funktioniert!

Und damit ärger ich mich jetzt schon seit Tagen rum....

was bewirkt das jetzt, dass ich da

C-/C++-Quelltext

1
class CIntro;
schreib?
Is des sowas wie bei den Funktionen, wo oben gesagt wird, da kommt unten noch was und unten steht dann die "echte" Funktion?

THX
Trein
-- Hier könnte meine Signatur stehen --

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

4

12.07.2007, 01:03

richtig ;)

5

12.07.2007, 01:03

OK, danke nochmal!!
-- Hier könnte meine Signatur stehen --

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

6

12.07.2007, 06:51

Nimm bitte das using namespace std aus deinen Headern. Das ist sowas von nicht schön...
@D13_Dreinig

Werbeanzeige