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

NoobEnt

Frischling

  • »NoobEnt« ist der Autor dieses Themas

Beiträge: 14

Wohnort: Aurich, Ostfriesland

  • Private Nachricht senden

1

06.02.2011, 13:04

fehlender Typspezifizierer, obwohl klasse bekannt? =/

Moin :-)

Ich habe ein kleines, nerviges problem, nämlich dass ich aufeinmal keine Zeiger auf Klassen mehr als private Membervariable einer anderen Klasse speichern kann =/

Meine Klasse CGame:

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
#ifndef CGAME_HPP
#define CGAME_HPP

#include "Framework.hpp"


class CGame : public TSingleton<CGame>  
{
    public:
        CGame   ();     
        


        bool        bRunning;

        void        Init    ();                    
        void        Render  ();
        void        Run     ();
        void        Quit    ();         
    
        irr::scene::ICameraSceneNode*   GetCamNode () { return Camera; }

     

    private:
        void ProcessEvents      ();
        void InitSkyBox         ();


        float                   m_fTime;
        
        irr::scene::ISceneNode*             SkyBoxNode;
        irr::scene::ICameraSceneNode*       Camera;
        CPlayer*                            m_pPlayer;
        
        


};

#endif


Dort bekomme ich den Fehler:

Zitat

error C2143: Syntaxfehler: Es fehlt ';' vor '*'
error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt
Bei der Zeile

C-/C++-Quelltext

1
 CPlayer*                           m_pPlayer;



Framework.hpp included CPlayer.hpp...

Cplayer.hpp included Framework.hpp

Jemand von euch ne Ahnung? :)

EDIT:

Include hatte ich bloß falsch abgetippt, stand in der richtigen version jedoch in der IDE ;-)

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »NoobEnt« (06.02.2011, 13:35)


drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

2

06.02.2011, 13:24

Schau mal dein include an..

Ein solcher Fehler bedeutet meistens, dass ein Header nicht korrekt eingebunden wurde.

Harry222

Alter Hase

Beiträge: 864

Beruf: Student

  • Private Nachricht senden

3

06.02.2011, 13:24

Ich würde jetzt zuerst mal annehmen, dass du bei der Klasse CPlayer irgendeinen Fehler gemacht hast, da laut dem Compiler CPlayer kein "Typspezifizierer" ist! ;)
Schick doch vielleicht mal den Code von CPlayer, falls du da selber keinen Fehler findest.

EDIT: Drakon hat recht! Hatte ich garnicht gesehen!

Mfg Harry222

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

4

06.02.2011, 13:25

header können sich nicht gegenseitig inkludieren. dabei würde eine endlosschleife entstehen(Framework.hpp inkludiert CPlayer.hpp, dabei wird Framework.hpp inkludiert wobei wieder CPlayer.hpp inkludiert wird...). deklariere CPLayer einfach und inkludiere in der cpp.

C-/C++-Quelltext

1
class CPlayer; // deklariert CPlayer

auf singletons solltest du erstmal komplett verzichten.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

NoobEnt

Frischling

  • »NoobEnt« ist der Autor dieses Themas

Beiträge: 14

Wohnort: Aurich, Ostfriesland

  • Private Nachricht senden

5

06.02.2011, 15:06

Vielen Dank leute :-)

hab das Problem gelöst - es lag an den sich gegenseitig includierenden Headern :-)

Werbeanzeige