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

Nexxtron

Alter Hase

  • »Nexxtron« ist der Autor dieses Themas

Beiträge: 424

Wohnort: Heilbronn

Beruf: Student - Software Engineering

  • Private Nachricht senden

1

07.11.2009, 21:58

Fehler...weiß kein Titel :(

hi,
ich bekomm grad so ein Fehler und kann nichts daraus schließen und hab den fehler bis jetzt noch nicht gefunden, hier der Fehler:

C-/C++-Quelltext

1
2
1>c:\dokumente und einstellungen\raphi\desktop\pixelbased\pixelbased\paddle.h(17) : error C2061: Syntaxfehler: Bezeichner 'CBall'
1>c:\dokumente und einstellungen\raphi\desktop\pixelbased\pixelbased\paddle.h(19) : error C2061: Syntaxfehler: Bezeichner 'CBall'


hier der relevante 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
#ifndef PADDLE_H
#define PADDLE_H

#include "main.h"

enum EPaddleState
{
    PS_NONE,
    PS_SMALLER,
    PS_BIGGER
};

class CPaddle
{
public:
    int     Init(float fPositionX, float fPositionY, float fHeight, float fWidth, unsigned uIndex, bool ai);
    void    Move(float fTime, float fSpeed, CBall* balli);
    void    Render(float fTime);
    float   ComputeKI(CBall *ball);
    bool    alive()     {return m_bAlive;}

private:

    bool m_bAlive;
    unsigned m_uIndex;
    float m_fXPos;
    float m_fYPos;
    float m_fSpeed;
    bool m_bKi;
    D3DVERTEX m_PaddleRect[4];
    LPDIRECT3DVERTEXBUFFER9 m_VB;
    VOID* pData;

};

#endif


ich hab alles richtig included und intellisense zeigt mir auch die funktionen von ball oder balli an
New Project: Operation CityRacer

2

07.11.2009, 22:18

Mach halt mal eine Pre-Definition rein:

C-/C++-Quelltext

1
class CBall;

Nexxtron

Alter Hase

  • »Nexxtron« ist der Autor dieses Themas

Beiträge: 424

Wohnort: Heilbronn

Beruf: Student - Software Engineering

  • Private Nachricht senden

3

07.11.2009, 22:43

ok thx es funktioniert, aber ich frag mich warum das nicht auch ohne ging
New Project: Operation CityRacer

4

07.11.2009, 23:29

Du inkludierst nicht den Header von Cball, daher kennt er CBall einfach nicht. Mit der forward deklaration sagst du ihm, dass es so eine Klasse gibt (das ist quasi sowas wie eine Funktionsdeklaration, die dann ja auch ganz woanders definiert sein kann).
Solange du nur einen zeiger oder eine Referenz irgendwo speicherst, muss er ja nicht den genauen Aufbau oder die Größe der klasse kennen, das brauchst er erst wenn du sie tatsächlich benutzt (z.B. in der Cpp Datei, dort muss dann der Header inkludiert sein!).
Lieber dumm fragen, als dumm bleiben!

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

5

08.11.2009, 14:09

Zum Thema Deklaration, Definition, habe ich neulich was auf meinem Blog geschrieben. Das erklärt auch, warum du da lediglich eine Deklaration brauchst:

Definitionen und Deklarationen in C++:
http://drakon.ch/?id=&offset=&mobile=0&show_entry=77

(yes, permalinks - frisch eingebaut. :p)

EDIT:
Link editiert.

Nexxtron

Alter Hase

  • »Nexxtron« ist der Autor dieses Themas

Beiträge: 424

Wohnort: Heilbronn

Beruf: Student - Software Engineering

  • Private Nachricht senden

6

10.11.2009, 17:52

ohhh, werd ich gleich mal lesen
New Project: Operation CityRacer

Werbeanzeige