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
C-/C++-Quelltext |
|
1 2 |
/* Fehlercode Pointer */ St_FehlerCode::en_FehlerCode* Fehler; |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
CCharakter::CCharakter(void) { ... // Fehler Pointer Fehler = new St_FehlerCode::en_FehlerCode; Fehler = 0; } bool CCharakter::Func_Fehler_PtrAdr_Setzen(St_FehlerCode::en_FehlerCode *gl_Fehler) { if (gl_Fehler != 0) { Fehler = gl_Fehler; return true; } else { return false; } } |
C-/C++-Quelltext |
|
1 2 3 4 5 6 |
/* Spieler */ CCharakter Spieler; /* Fehler Code zur Ausgabe in MSGBOX */ St_FehlerCode::en_FehlerCode FehlerCode; /* Fehler Auswerten über eine MSGBOX */ void Func_Fehler_Auswerten(); |
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 |
CKarte::CKarte(void) { ... FehlerCode = St_FehlerCode::FC_OK; Spieler.Func_Fehler_PtrAdr_Setzen(&FehlerCode); } void CKarte::Func_Fehler_Auswerten() { string FehlerText = ""; switch(FehlerCode) { // Datei nicht gefunden case St_FehlerCode::FC_ALG_DATEINICHTGEFUNDEN: FehlerText = "Datei nicht gefunden."; break; // Attributspunkte Fehlen case St_FehlerCode::FC_CHAR_KEINEATTRIBUTSPUNKTE: FehlerText = "Zuwenig oder Keine \nAttributspunkte zur Verfügung"; break; }; #if defined(_DEBUG) std::cout << FehlerText <<endl; #endif } |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
bool CCharakter::Func_Erhöhe_Koerperkraft() { if (i_AttributPunkte) { i_Koerperkraft++; fl_TragKraftMax = i_Koerperkraft * 2000.0f; i_AttributPunkte--; return true; } else { // Keine Punkte zum Erhöhen *Fehler = St_FehlerCode::FC_CHAR_KEINEATTRIBUTSPUNKTE; return false; } } |
Dann solltest du aber nichtZitat
Auf 0 wird der Fehler (in der Charakterklasse) gesetzt weil ihm erst noch die Adresse von der Variablen zugewiesen wird.
Hoffe meine Gedanken gänge sind verständlich.
C-/C++-Quelltext |
|
1 |
Fehler = 0; |
C-/C++-Quelltext |
|
1 |
*Fehler = 0; |
Ja ist nur Nen Struct. Ich Pack meine Enums immer da rein weil ich sonst Tausende von Enum Namen hätte, da ich damit sehr viel Arbeite.Wie ist denn St_FehlerCode definiert? Das ist doch sicher nur eine Klasse welche ein enum hält, wozu brauchst du dann überhaupt ein Pointer für den fehlercode? Das bringt dir doch keinerlei Vorteile.
C-/C++-Quelltext |
|
1 |
Fehler = 0; |
Ich möchte hier aber nicht mein Programmier stiel verteidigen sondern hätte gern ein lösungs ansatz.
Sei doch froh, dass du Vorschläge bekommst, wie du deinen Stil verbessern kannst...
Danke für die Blumen Oo.Sei doch froh, dass du Vorschläge bekommst, wie du deinen Stil verbessern kannst...
Naja vllt habe ich mich ja nicht richtig Ausgedrückt aber mir scheint DerMark hat nicht verstanden wie das funktionieren sollte.
Und nen Wirklichen Vorschlag gabe es nicht was zu verbessern (Aus meiner Sicht) und von einem Lösungsansatz ganz zu schweigen aber das ist ja jetzt eh hinfällig da mir scheint das Problem war gar keins Bzw. eins von VC++.
Habe das Programm jetzt über 10 mal ohne Fehler Compiliert und gestartet.
Selbstverständlich bin ich froh um vorschläge Sachen besser zu machen ich habe mir viel wissen selber angeeignet und habe bestimmt noch ne Menge zu lernen.
Werbeanzeige