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
Allerdings ist es durchaus sinnvoll goto in eine Sprache einzubauen, weil es tatsächlich einige Situationen gibt, wo goto am Leserlichsten und Sinnvollsten ist.
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].
Beispiel bitte.
MfG
Check
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
if(blub) goto t1: if(bla) { int x=5 t1: cout << x; goto t2; } t2: if(UserInput==Nochmal) goto t1; |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 |
do { if(bla) { if(!blub) x = 5; // x wird irgendwo ausserhalb definiert, wo es nicht gleich wieder gelöscht wird und der wert erhalten bleibt cout << x; } } while(UserInput==Nochmal); |
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 |
class xxx { public: void test() { cout << "Hallo"; } }; typedef void (xxx::*func)(); template<typename T> void* GetPointer(T p) { union{ T in; void* out; }help; help.in = p; return help.out; } int main(int argn, char** argv) { func f = &xxx::test; void (*ptr)() = *((void (**)())(&f)); //oder void (*ptr)() = (void (*)())GetPointer(f); ptr(); cin.get(); return 0; } |
C-/C++-Quelltext |
|
1 2 3 4 |
//Anzahl aller möglichen Züge !DONE! int berechneAnzahlZuege(std::vector<Zug> &PossibleZuege) { return PossibleZuege.size(); } |
C-/C++-Quelltext |
|
1 2 3 4 |
std::vector<Spielsteine> foo; // .. foo befüllen std::vector<string> str = dynamic_cast<std::string>(foo); // String an den Server senden |
Werbeanzeige