Ich beschäftige mich momentan mit KLassen in C++ und habe schon fast das ganze Kapitel im Buch durchgelesen.
Zu Übungszwecken hab ich mir nun eine eigene Klasse geschrieben und zwar zum Ghost.
Der Ghost in eine Einheit in dem RTS Starcraft 2 und hat verschiedene Spezialfähigkeiten.
Bei meinem Programm hat man die Möglichkeit einen Ghost zu erstellen und dann verschiedene Aktionen mit ihm durchzuführen.
Aber seht selbst:
CGhost.hpp
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
|
// Ghost-Klasseclass CGhost
{private:
// Membervariablenint m_Energy;
int m_Healthpoints;public:
// Memberfunktionenvoid Snipingattack (int *pm_Energy) ;void EMP (int *pm_Energy);
CGhost ();CGhost (int Energy, int Healthpoints);
};
|
CGhost.cpp
|
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
|
//Definition der Klasse CGhost
#include <iostream>
#include "CGhost.hpp"
using namespace std;
// Funktionenvoid CGhost::Snipingattack (int *pm_Energy)
{if ( *pm_Energy >= 50 )
{
*pm_Energy -= 50;cout << "Dem Ziel wurde Schaden zugefügt" << endl;
}else { cout << "Du hast zu wenig Energie" << endl;}
}void CGhost::EMP (int *pm_Energy)
{if ( *pm_Energy >= 50 )
{
*pm_Energy -= 50;cout << "Dem Ziel wurde Energie abgesaugt" << endl;
}else { cout << "Du hast zu wenig Energie" << endl;}
}
CGhost::CGhost ()
{
m_Energy = 150;
m_Healthpoints = 200;cout << "Ghost wurde erstellt" << endl;
}CGhost::CGhost ( int Energy, int Healthpoints )
{
m_Energy = Energy;
m_Healthpoints = Healthpoints;cout << "Ghost wurde erstellt" << endl;
}
|
GhostActions.cpp
|
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
|
// Aktionen des Ghosts
#include <iostream>
#include "CGhost.hpp"
using namespace std;int main ()
{
// Variablenint Auswahl = 0;
int Energy = 0;int Healthpoints = 0;
// Ghost erstellencout << "Treffen sie eine Wahl" << endl;
cout << "[1] Standardghost erstellen" << endl;cout << "[2] Speziellen Ghost erstellen" << endl;cout << "Deine Wahl: ";
cin >> Auswahl;switch (Auswahl)
{case (1):
{
CGhost Ghost1;} break;case (2):
{cout << "Energie des zu erstellenden Ghosts: ";
cin >> Energy;cout << "Lebenspunkte des zu erstellenden Ghosts: ";
cin >> Healthpoints;
CGhost Ghost1 (Energy, Healthpoints);
}
default:
{cout << "Wer lesen kann ist klar im Vorteil :p" << endl;return 0;
}
}
// Aktionen des Ghostswhile ( Auswahl != 3)
{cout << "Waehlen sie eine Aktion aus!" << endl;
cout << "[1] Scharfschütze einsetzen" << endl;cout << "[2] EMP einsetzen" << endl;
cout << "[3] Beenden" << endl;cout << "Deine Wahl: ";
cin >> Auswahl;switch (Auswahl)
{case (1):
{
Ghost1.Snipingattack (&Energy);} break;case (2):
{
Ghost1.EMP (&Energy);} break;
case (3):{}break;default:
{cout << "Dein geistiges Alter liegt zwischen 0 und 5 Jahren" << endl;
}
}
}return 0;
}
|
Der Compiler spuckt nun folgende Fehlermeldung aus
|
Quellcode
|
1
2
3
4
5
6
7
8
9
|
1>------ Erstellen gestartet: Projekt: Ghost, Konfiguration: Debug Win32 ------
1> GhostActions.cpp
1>c:\users\krenzler\documents\visual studio 2010\projects\ghost\ghostactions.cpp(56): error C2065: 'Ghost1': nichtdeklarierter Bezeichner
1>c:\users\krenzler\documents\visual studio 2010\projects\ghost\ghostactions.cpp(56): error C2228: Links von ".Snipingattack" muss sich eine Klasse/Struktur/Union befinden.
1> Typ ist ''unknown-type''
1>c:\users\krenzler\documents\visual studio 2010\projects\ghost\ghostactions.cpp(61): error C2065: 'Ghost1': nichtdeklarierter Bezeichner
1>c:\users\krenzler\documents\visual studio 2010\projects\ghost\ghostactions.cpp(61): error C2228: Links von ".EMP" muss sich eine Klasse/Struktur/Union befinden.
1> Typ ist ''unknown-type''
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
|
Hier mal die beiden Zeilen, auf die sich die Fehlermeldungen beziehen
|
C-/C++-Quelltext
|
1
2
|
56: Ghost1.Snipingattack (&Energy);
61: Ghost1.EMP (&Energy);
|
Wo liegt der Fehler?
mfg Challenger