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

1

22.01.2009, 17:19

Re^^ Problem mit Klassen. Glaub ich...

Hallo.

Ich bins wieder und habe in der vergangenen Woche ein wenig Deutsche Grammatik gelernt. Ich glaube, dass Ihr mich jetzt schlussendlich verstehen werdet.
Zuerst mal Sorry, dass ich hier jetzt wieder stresse, aber ich find' einfach kein passenderes Forum für mich. Wenn Ihr mich nicht wollt, so beantwortet bitte nur noch schnell meine Frage und mach' 'ne Fliege. Doch diese Frage brauche ich jetzt.

Zum Problem...

Ja, auch ich habe das Programmieren noch nicht aufgegeben und habe trotzdem ein paar Fehler. Ganze 3 Tage lang habe ich gebraucht, um einen, nur einen Fehler zu korrigieren. Finds ziemlich schwer, diese Fehlersuche. Ich habe es auch schon über der MSDN versucht, habe da leider nicht meine erhofften Resultate gefunden. Ich weiß auch nicht, was ich in die Google-Suche eintippen könnte/sollte.

Das Problem hat was mit den Klassen, deren privaten Membervariablen zu tun. Obwohl ich in der Klasse meine privaten Membervariablen deklariert habe, erkennt meine Funktion (die ebenfalls in der Klasse steht), meine Variablen nicht. Hier meine 26 (-.-) Fehler:

Quellcode

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
1>------ Neues Erstellen gestartet: Projekt: Sumos, Konfiguration: Debug Win32 ------
1>Die Zwischen- und Ausgabedateien für das Projekt "Sumos" mit der Konfiguration "Debug|Win32" werden gelöscht.
1>Kompilieren...
1>Hauptmenü.cpp
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.hpp(3) : error C2011: 'CSpieler': 'class' Typneudefinition
1>        c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.hpp(3): Siehe Deklaration von 'CSpieler'
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\csumos.hpp(3) : error C2011: 'CSumos': 'class' Typneudefinition
1>        c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\csumos.hpp(3): Siehe Deklaration von 'CSumos'
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\hauptmenü.cpp(31) : error C2079: 'Spieler' verwendet undefiniertes class 'CSpieler'
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\hauptmenü.cpp(39) : error C2228: Links von ".SpielernamenEingeben" muss sich eine Klasse/Struktur/Union befinden.
1>        Typ ist 'int'
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\hauptmenü.cpp(76) : error C3861: "Spielen": Bezeichner wurde nicht gefunden.
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\hauptmenü.cpp(80) : error C2664: 'Optionen': Konvertierung des Parameters 2 von 'int' in 'CSpieler &' nicht möglich
1>Spielen.cpp
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.hpp(3) : error C2011: 'CSpieler': 'class' Typneudefinition
1>        c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.hpp(3): Siehe Deklaration von 'CSpieler'
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\csumos.hpp(3) : error C2011: 'CSumos': 'class' Typneudefinition
1>        c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\csumos.hpp(3): Siehe Deklaration von 'CSumos'
1>Fehlermeldung.cpp
1>stdafx.cpp
1>Timer.cpp
1>CSpieler.cpp
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.hpp(3) : error C2011: 'CSpieler': 'class' Typneudefinition
1>        c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.hpp(3): Siehe Deklaration von 'CSpieler'
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.cpp(9) : error C2027: Verwendung des undefinierten Typs "CSpieler"
1>        c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.hpp(3): Siehe Deklaration von 'CSpieler'
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.cpp(9) : error C2059: Syntaxfehler: ')'
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.cpp(10) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.cpp(10) : error C2447: '{': Funktionsheader fehlt - Parameterliste im alten Stil?
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.cpp(16) : error C2027: Verwendung des undefinierten Typs "CSpieler"
1>        c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.hpp(3): Siehe Deklaration von 'CSpieler'
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.cpp(20) : error C2079: 'Spieler' verwendet undefiniertes class 'CSpieler'
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.cpp(24) : error C2065: 'm_Spielername': nichtdeklarierter Bezeichner
1>CSumos.cpp
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\csumos.hpp(3) : error C2011: 'CSumos': 'class' Typneudefinition
1>        c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\csumos.hpp(3): Siehe Deklaration von 'CSumos'
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\csumos.cpp(11) : error C2027: Verwendung des undefinierten Typs "CSumos"
1>        c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\csumos.hpp(3): Siehe Deklaration von 'CSumos'
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\csumos.cpp(18) : error C2065: 'm_Bereich': nichtdeklarierter Bezeichner
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\csumos.cpp(19) : error C2065: 'm_Bereich': nichtdeklarierter Bezeichner
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\csumos.cpp(31) : error C2065: 'm_Bereich': nichtdeklarierter Bezeichner
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\csumos.cpp(35) : error C2065: 'm_Bereich': nichtdeklarierter Bezeichner
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\csumos.cpp(40) : error C2065: 'm_Zufallszahl': nichtdeklarierter Bezeichner
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\csumos.cpp(40) : error C2065: 'm_Bereich': nichtdeklarierter Bezeichner
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\csumos.cpp(42) : error C2065: 'm_Bereich': nichtdeklarierter Bezeichner
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\csumos.cpp(42) : error C2065: 'm_Bereich': nichtdeklarierter Bezeichner
1>Code wird generiert...
1>Das Buildprotokoll wurde unter "file://c:\Users\Luca\Documents\Visual Studio 2008\Projects\Sumos\Sumos\Debug\BuildLog.htm" gespeichert.
1>Sumos - 26 Fehler, 0 Warnung(en)
========== Alles neu erstellen: 0 erfolgreich, Fehler bei 1, 0 übersprungen ==========


Es sind fast immer die selben Fehler, aber ich komm' damit einfach nicht klar. Vorher, mit der ersten Klasse hat es noch funktioniert, dann aber schoss der Compiler einen Fehler nach dem anderem heraus. Da ich viele Dateien habe, schicke ich mal den ganzen Projektordner:

Sumos - 2013 KB - 17:17 UHR


PS: Fragt nicht wie/warum/what ever die Fehler entstanden sind, denn die Antwort weiß ich auch nicht. Das einzige das ich weiß ist, dass ich solche Fehler noch nie erlebt habe, wenn ich mal ne Klasse erstellt habe.

MfG

2

22.01.2009, 17:24

mach mal ne Skizze, welche Datei in welche inkludiert wird

3

22.01.2009, 17:29

So siehst aus:

Quellcode

1
2
3
CSpieler.hpp -> CSpieler.cpp
CSumos.hpp -> CSumos.cpp
Hauptmenü.cpp <- CSpieler.hpp & CSumos.hpp


Ich glaube mehr brauch man da nicht?

4

22.01.2009, 17:30

seh ich das richtig, du inkludierst ne cpp in ne hpp?

5

22.01.2009, 17:33

Zitat von »"PCShadow"«

seh ich das richtig, du inkludierst ne cpp in ne hpp?


Das "->" habe ich genutzt um zu zeigen: "Diese Datei ist in dieser Datei inkludiert". Das heißt "CSpieler.hpp ist in CSpieler.cpp inkludiert".

Faule Socke

Community-Fossil

Beiträge: 1 915

Wohnort: Schreibtischstuhl

  • Private Nachricht senden

6

22.01.2009, 17:34

Ok schreib mal oben in jede Header-Datei das hier:

C-/C++-Quelltext

1
2
3
4
5
#ifndef DATEINAME_IN_GROSSBUCHSTABEN_HPP
#define DATEINAME_IN_GROSSBUCHSTABEN_HPP

// Und das hier ganz unten...

#endif


Solltest du am besten immer machen, so verhinderst du seltsame Fehler, wenn du eine Datei ausversehen 2 mal includierst in einer cpp datei.

Socke

Anonymous

unregistriert

7

22.01.2009, 17:41

Lad das Projekt mal hoch und schick mir ne PN mit Link...

8

22.01.2009, 17:42

Re: Re^^ Problem mit Klassen. Glaub ich...

@Coders-Square:

Zitat von »"Traurig"«


9

22.01.2009, 18:17

Zitat von »"Faule Socke"«

Ok schreib mal oben in jede Header-Datei das hier:

C-/C++-Quelltext

1
2
3
4
5
#ifndef DATEINAME_IN_GROSSBUCHSTABEN_HPP
#define DATEINAME_IN_GROSSBUCHSTABEN_HPP

// Und das hier ganz unten...

#endif


Solltest du am besten immer machen, so verhinderst du seltsame Fehler, wenn du eine Datei ausversehen 2 mal includierst in einer cpp datei.

Socke


Üerall geändert, nur noch folgende Fehler

Quellcode

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
1>------ Neues Erstellen gestartet: Projekt: Sumos, Konfiguration: Debug Win32 ------
1>Die Zwischen- und Ausgabedateien für das Projekt "Sumos" mit der Konfiguration "Debug|Win32" werden gelöscht.
1>Kompilieren...
1>Hauptmenü.cpp
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.hpp(1) : warning C4067: Unerwartete Token nach Präprozessordirektive - Zeilenvorschub erwartet.
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.hpp(8) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'm_Spielername'
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.hpp(8) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.hpp(8) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.hpp(1) : warning C4067: Unerwartete Token nach Präprozessordirektive - Zeilenvorschub erwartet.
1>Spielen.cpp
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.hpp(1) : warning C4067: Unerwartete Token nach Präprozessordirektive - Zeilenvorschub erwartet.
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.hpp(8) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'm_Spielername'
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.hpp(8) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.hpp(8) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.hpp(1) : warning C4067: Unerwartete Token nach Präprozessordirektive - Zeilenvorschub erwartet.
1>Fehlermeldung.cpp
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.hpp(1) : warning C4067: Unerwartete Token nach Präprozessordirektive - Zeilenvorschub erwartet.
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.hpp(8) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'm_Spielername'
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.hpp(8) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.hpp(8) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>stdafx.cpp
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.hpp(1) : warning C4067: Unerwartete Token nach Präprozessordirektive - Zeilenvorschub erwartet.
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.hpp(8) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'm_Spielername'
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.hpp(8) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.hpp(8) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>Timer.cpp
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.hpp(1) : warning C4067: Unerwartete Token nach Präprozessordirektive - Zeilenvorschub erwartet.
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.hpp(8) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'm_Spielername'
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.hpp(8) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.hpp(8) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>CSpieler.cpp
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.hpp(1) : warning C4067: Unerwartete Token nach Präprozessordirektive - Zeilenvorschub erwartet.
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.hpp(8) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'm_Spielername'
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.hpp(8) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.hpp(8) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.hpp(1) : warning C4067: Unerwartete Token nach Präprozessordirektive - Zeilenvorschub erwartet.
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.cpp(11) : error C2065: 'm_Spielername': nichtdeklarierter Bezeichner
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.cpp(24) : error C2065: 'm_Spielername': nichtdeklarierter Bezeichner
1>CSumos.cpp
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.hpp(1) : warning C4067: Unerwartete Token nach Präprozessordirektive - Zeilenvorschub erwartet.
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.hpp(8) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'm_Spielername'
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.hpp(8) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\users\luca\documents\visual studio 2008\projects\sumos\sumos\cspieler.hpp(8) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>Code wird generiert...
1>Das Buildprotokoll wurde unter "file://c:\Users\Luca\Documents\Visual Studio 2008\Projects\Sumos\Sumos\Debug\BuildLog.htm" gespeichert.
1>Sumos - 23 Fehler, 10 Warnung(en)
========== Alles neu erstellen: 0 erfolgreich, Fehler bei 1, 0 übersprungen ==========


Übrigends, ja ich habe sie durchgelesen.

10

22.01.2009, 18:21

Alles gefunden. Danke ihr alle!

Werbeanzeige