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