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

Porates

Frischling

  • »Porates« ist der Autor dieses Themas

Beiträge: 32

Beruf: GameDesign Student bei Qantm Institut München, Gründer von DarkMirrorGames

  • Private Nachricht senden

1

18.09.2009, 14:02

Kapitel 7.9 Vererbung - Listing 7.12

Versehentlich wurde scheinbar bei der Memberfuntion CMinenleger ein ; nach der geschwungenen Klammer gesetzt.
www.darkmirrorgames.de

CBenni::O

1x Contest-Sieger

Beiträge: 1 145

Wohnort: Stuttgart

  • Private Nachricht senden

2

18.09.2009, 15:37

dies muss so sein, denn sonst gibt es einen compilerfehler!
vor allem bei headerdateien muss man da aufpassen, die fehler sind dann sehr schwer zu finden!

kannst es ja mal ohne kompilieren...

lg CBenni

EDIT: es gibt nicht nur einen, sondern gleich 15^^

Zitat


error C2236: "class" "CMinenleger" unerwartet. Wurde ein ";" vergessen?
error C2143: Syntaxfehler: Es fehlt ';' vor ':'
error C2059: Syntaxfehler: ':'
error C2059: Syntaxfehler: 'public'

etc... :D
Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.
42!
Aufräumen kann jeder, nur das Genie überblickt das Chaos!
Metal will never die!
1. Sppro Gamecontest - mein Beitrag

Porates

Frischling

  • »Porates« ist der Autor dieses Themas

Beiträge: 32

Beruf: GameDesign Student bei Qantm Institut München, Gründer von DarkMirrorGames

  • Private Nachricht senden

3

18.09.2009, 15:56

Naja, nach der KLasse muss natürlich ein ; folgen. Aber doch nicht bei der Memberfunction.

Es geht um folgenden Code.

C-/C++-Quelltext

1
2
3
4
5
CMinenleger()
{
m_Minen = 10;
cout << "blabla";
};
www.darkmirrorgames.de

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

4

18.09.2009, 17:12

Das ist völllig korrektes C++. Es ist in dem Falle nicht nötig ein Semikolon zu machen, aber durchaus erlaubt.

Porates

Frischling

  • »Porates« ist der Autor dieses Themas

Beiträge: 32

Beruf: GameDesign Student bei Qantm Institut München, Gründer von DarkMirrorGames

  • Private Nachricht senden

5

07.10.2009, 12:47

Das Semi hat bei mir aber eine Fehlermeldung zur folge gehabt. Und das Programm lies sich nicht ausführen.
www.darkmirrorgames.de

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

6

07.10.2009, 18:33

Kann ich mir schwer vorstellen, dass es an dem gelegen hat.

Ansonsten war halt der Compiler nicht sehr korrekt, weil es ausdrücklich erlaubt ist jede Zeile mit einem Semikolon abzu schliessen.

7

25.12.2009, 17:13

Ich habe in der Forumssuche nach Kapitel 7.10 gesucht, aber da ich dort nichts entsprechendes gefunden habe, benutze ich diesen Thread um auf einen Fehler hinzuweisen.

Zumindest hat sich meiner Meinung nach ein Fehler eingeschlichen, der bei Übernahme in einer anderen Anwendung zu einem Absturz führen könnte.

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
class CRaumschiff
{
    private:

        // Membervariablen

        int   m_xPos;             // x-Position auf dem Bildschirm

        int   m_yPos;             // y-Position auf dem Bildschirm

        int   m_Energie;          // Energie des Raumschiffes

        float m_fGeschwindigkeit; // Geschwindigkeit des Raumschiffes


    public:

        // Memberfunktionen

        CRaumschiff  ();
        CRaumschiff  (int xPos, int yPos);
        ~CRaumschiff ();

};



...... etc., etc.

} // Destruktor


// Hauptprogramm

//

int main ()
{
    // Variablen

    //

    CRaumschiff *pSpieler = NULL; // Ein Raumschiff für den Spieler

    CRaumschiff *pGegner = NULL;  // Ein Raumschiff für den Gegner

    int xPos, yPos;              // Gewünschte Koordinaten


    // Position des Gegnerraumschiffes abfragen

    cout << "x-Position des Gegners: ";
    cin >> xPos;

    cout << "y-Position des Gegners: ";
    cin >> yPos;

    // Raumschiffe erstellen

    pSpieler = new CRaumschiff;
    pGegner = new CRaumschiff (xPos, yPos);

    // Raumschiffe zerstören

    delete pSpieler;
    pSpieler = NULL;

    delete pGegner;
    pSpieler = NULL;

    return 0;
}


Heiko erstellt im obigen Beispiel beim "Deleten" in der Main-Funktion (ganz unten) nur einen Null-Pointer, und zwar auf pSpieler (und das gleich zwei mal). Gemeint wird aber wohl sein pGegner=NULL. Da man sonst mit einem erneuten Delete von pGegner Probleme bekommen könnte. Nicht das dies bei diesem Beispiel von Belang wäre, aber man weiß ja nie....

Sollte ich da falsch liegen, dann nichts für ungut :D

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

8

25.12.2009, 17:40

Es gab irgendwo einen Fehler Thread für das Buch, aber finde den selbst gerade nicht. Ich denke der Fehler wurde dort bereits genannt.

Werbeanzeige