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

Hafnernuss

Frischling

  • »Hafnernuss« ist der Autor dieses Themas

Beiträge: 21

Wohnort: Graz Umgebung

Beruf: Schüler

  • Private Nachricht senden

1

22.03.2010, 17:36

Klasseninstanz erstellen, fehlender Typenspezifizierer?

Hallo!

Ich habe ein Problem mit einer Klasse. SIe ist soweit fertig und funktioniert auch. Ich kann alle Membervariablen die ich brauche ohne Probleme anlegen. Ausser eine Instanz meiner Klasse CSprite (Ja, aus dem Buch)

Ich habe alles auskommentiert, im hpp und im cpp File. Hier mal die Zeile Code wo der Fehler auftritt:

C-/C++-Quelltext

1
CSprite *m_pSprite;


in anderen Klassen funktioniert dies einwandfrei, hier aber bekomme ich folgende Fehler:

Zitat


1>c:\users\philipp hafner\documents\visual studio 2008\projects\sdl_game\sdl_game\text.hpp(30) : error C2143: Syntaxfehler: Es fehlt ';' vor '*'
1>c:\users\philipp hafner\documents\visual studio 2008\projects\sdl_game\sdl_game\text.hpp(30) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\users\philipp hafner\documents\visual studio 2008\projects\sdl_game\sdl_game\text.hpp(30) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.


Weiß jemand abhilfe? *kopfkratz*

Mischu

Frischling

Beiträge: 21

Wohnort: Olten (Schweiz)

Beruf: Javaentwickler (swissinfo.ch)

  • Private Nachricht senden

2

22.03.2010, 17:40

hast die header datei included wo CSprite deklariert ist?

Hafnernuss

Frischling

  • »Hafnernuss« ist der Autor dieses Themas

Beiträge: 21

Wohnort: Graz Umgebung

Beruf: Schüler

  • Private Nachricht senden

3

22.03.2010, 17:44

freilich, obwohl ich das in der anderen Klasse nicht muss, und es trotzdem hinhaut.

FalkT

Treue Seele

Beiträge: 125

Wohnort: AC

  • Private Nachricht senden

4

22.03.2010, 18:03

Da mußt du wohl mehr Code posten.

Hafnernuss

Frischling

  • »Hafnernuss« ist der Autor dieses Themas

Beiträge: 21

Wohnort: Graz Umgebung

Beruf: Schüler

  • Private Nachricht senden

5

22.03.2010, 18:04

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

#include <iostream>
#include "SDL_image.h"
#include "SDL_ttf.h"
#include "Sprite.hpp"
#include <vector>

#define g_pText CText::Get()

class CText : public TSingleton<CText>
{
public:
    bool Init();
    void LoadFont(std::string strFilename, int nSize);
    void Render(std::string strText, int XPos, int YPos, SDL_Color Color);

private:
    SDL_Surface *m_pScreen;
    TTF_Font *m_Font;
    struct sFont
    {
        TTF_Font *Font;
        std::string strFontName;
    } m_sFont;
    
    std::vector<CText::sFont> oFontList;

    CSprite *m_pSprite;
};

#endif;

6

22.03.2010, 18:29

Sprite.hpp bitte auch. :)

Hafnernuss

Frischling

  • »Hafnernuss« ist der Autor dieses Themas

Beiträge: 21

Wohnort: Graz Umgebung

Beruf: Schüler

  • Private Nachricht senden

7

22.03.2010, 18:30

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

#include "Framework.hpp"
#include "SDL_image.h"


class CSprite
{

public:
     CSprite(void);
    ~CSprite(void);

    void Load(const std::string sFilename);
    void Load(SDL_Surface *Surface);
    void Load(const std::string sFilename, int numFrames, int FrameWidht, int FrameHeight);
    void SetColorKey( int R, int G, int B);
    void SetPos(float fXPos, float fYPos);
    void Render();
    void Render(float fFrameNumber);
    SDL_Rect GetRect();

protected:
    SDL_Surface *m_pScreen;
    SDL_Surface *m_pImage;
    SDL_Rect m_Rect;
    SDL_Rect m_FrameRect;
    int m_NumFrames;
    int m_FrameWidth;
    int m_FrameHeight;
    int m_NumFramesX;
};

Ihr wollt nur meine Header klauen, gebts doch zu ;)

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

8

22.03.2010, 18:35

Ich wette Framework.hpp inkludiert Text.hpp was zu einer zirkulären Abhängigkeit zwischen Sprite.hpp und Text.hpp führt.
Lösung: Forward Declarations verwenden.

Hafnernuss

Frischling

  • »Hafnernuss« ist der Autor dieses Themas

Beiträge: 21

Wohnort: Graz Umgebung

Beruf: Schüler

  • Private Nachricht senden

9

22.03.2010, 18:41

Richtig gewettet :D

Und wie mach ich das? Link würde mir reichen :D

Aaber schonmal danke ;)

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

10

22.03.2010, 18:50

http://www.drakon.ch/index.php?show_entry=77 ;)

Werbeanzeige