Von "C++ von A bis z" zu "C++ Primer"



  • pumuckl schrieb:

    cooky451 schrieb:

    9: globales namespace std;

    Ist in dem Fall kein Problem.

    Ich wollte noch etwas zur Aufteilung in Dateien schreiben, aber als ich dann nach unten gescrollt habe, habe ich zu viel Angst bekommen.


  • Mod

    gcc schrieb:

    test.cpp: In function ‘void parse(char*)’:
    test.cpp:420:116: warning: operation on ‘iCounter’ may be undefined

    hm...

    sstr << "\t\t\t*MESH_TFACE " << i << "\t" << iCounter++ << "\t" << iCounter++ << "\t" << iCounter++ << endl;
    

    Da hat er recht.



  • Ich glaube, Du solltest ein halbes Jahr keine Spieleprogrammierung betreiben und keine Programmierung mit grafischer Oberfläche. Wenn man konkret dieses gerade anliegende Problem durchboxen will, hat man keine Freiheit, über die anderen mindestens vier Möglichkeiten nachzudenken. Lieber erstmal unwichtige Spaßprogrammierung betreiben, aber dafür nach jeder Funktion zweimal überlegen, ob man das nicht so machen könnte, daß man keinen Code doppelt hat und daß man den Code in fünf Jahren (oder als Abkürzung nach einer Flasche Rum, wer ihn verträgt) noch flüssig lesen und verstehen kann. Dadurch verbessert man sich Funktion für Funktion in Hinsicht auf Lesbarkeit. Und das ist gleichermaßen Fehlerfindbarkeit und Fehlergarnichthinschreibbarkeit. Fehler sind teuer. Teuer. Ohne auf konstruierte Beispiele von herunterfallenden Raumkapseln herumzureiten oder auf unzufriedenen Kunden oder Chefs, allein alleine ist es viel geiler, (zwar langsam) Code zu schreiben, der klappt, als (kaum doppelt so schnell) Code zu schreiben, der nicht klappt (und die Fehlersuche dauert zehnmal so lang und ist zehnmal so ätzend, macht zusammen hundertmal so viel Ärger, so isses!). Damit kannste die ersten 5 bis 7 Jahre auf 12 Monate stauchen (Mit viel Buch und keinem Feiertag).

    Aber Achtung! Viele C++-Programmierer fallen in einen Technik-Rausch. Die machen dann Fibinaccizahlen als Template-Metaprogrammierung und so. Und bald ist ihr einziges Sinnen, C++ auszureizen. Das darf nicht passieren. Du würdest schlimmstenfalls 10 Jahre verlieren, die Du in der Sucht verbringst. Ohja, es macht Spaß. Aber das Problem hast Du ja nicht. Nach einem halben Jahr geh zurück zum GameCoding, was Du ja eigentlich willst. Die holen Dich da wieder raus. Und Du kannst ihnen im Gegenzug C++ beibringen.



  • Ich betreibe keine Spieleprogrammierung. Ich hab bisher immer ein bisschen in meiner Freizeit von der Schule programmiert. Ist sozusagen eins meiner Hobbies. Dennoch versuch ich mich noch nicht auf eine Sache direkt zu beschränken. Dieses Beispiel jetzt war zwar direkt zur Spieleentwicklung, jedoch eher um Models vom 3D Programm nach UDK zu transportieren. Also nicht wirklich direkt was mit der Spieleprogrammierung.
    Und ein halbes Jahr lang mal eben nicht zu programmieren geht nicht. Für mich hat grad das Studium begonnen. Da muss ich programmieren...



  • volkard schrieb:

    Aber Achtung! Viele C++-Programmierer fallen in einen Technik-Rausch. Die machen dann Fibinaccizahlen als Template-Metaprogrammierung und so. Und bald ist ihr einziges Sinnen, C++ auszureizen. Das darf nicht passieren.

    Auf den Punkt gebracht. 👍



  • seux schrieb:

    Und ein halbes Jahr lang mal eben nicht zu programmieren geht nicht.

    Niemand hat geschrieben dass du ein halbes Jahr lang nicht progrmmieren sollst. volkard hat geschrieben, dass du erstmal mit den basics anfangen sollst, also erstmal isolierte kleinere Probleme lösen, um "Schreiben" zu lernen.



  • Ich kenn jetzt C++ von A bis Z nicht. Hab schon oft versucht, in Bücherläden reinzuschnuppern, aber immer waren alle Bücher eingeschweißt...
    Letzens hab ich aber seinen "Grundkurs C++" in den FIngern gehabt.
    Thema Operatorüberladung:
    * op+ als Member, nicht freie Funktion. Verändert überdies "this"!
    * op++ arbeitet auf einem static member!
    * operator<< verwendet cout, nicht den übergebenen ostream. Außerdem gibts keinen return. Der operator<< wird dann durch ein cout in main "getestet"
    * operator>> verwendet den übergebenen istream nicht, macht etwas mit cout (!), und auch hier fehlt ein return...

    Das hat mir dann erstmal gereicht. Auf die überall angegebenen "bonus-seite" kann man nur mit dem Code im Buch zugreifen, auf seiner Homepage findet man gar nichts zu dem Buch. Hätte mich jetzt schon interessiert.

    Wenn nun "C++ von A bis Z" ähnliche Spielchen treibt - gute Nacht!



  • seux schrieb:

    Immerhin programmier ich nun doch schon etwas länger und mir hat noch nie jemand gesagt, das ich nen schlechten Stil hätte (also weder mein Informatik Lehrer im Abitur...

    Ich habe bislang nur einen Lehrer (genauer Dozent an einer FH) erlebt, der einen guten Programmierstil hatte. So traurig ich das auch finde, viele Lehrer ruhen sich auf dem einmal gelernten aus. Und gerade C++ und die Informatik allgemein haben sich in den letzen 15 Jahren massiv gewandelt.



  • C++ von AbisZ Nichtkenner schrieb:

    Ich kenn jetzt C++ von A bis Z nicht. Hab schon oft versucht, in Bücherläden reinzuschnuppern, aber immer waren alle Bücher eingeschweißt...
    Letzens hab ich aber seinen "Grundkurs C++" in den FIngern gehabt.

    Ich habe selbst nur Auszüge aus dem Buch lesen können (inzwischen zeigt google-Books leider hier garnichts mehr an), und alleine die waren schlimm. Und der Grundkurs C++ soll sogar besser sein...



  • Beim überfliegen Deines Codes ist mir am meisten der "prozedurale Programmierstiel" aufgefallen. Die Klassen sind ausschließlich Strukturen mit ctor.
    Evtl. hilft Dir die Beschäftigung mit dem objektorientierten Paradigma; erst wenn man dieses verinnerlicht hat, kann man die Vorzüge von C++ nutzen.
    Gruß



  • Helmut.Jakoby schrieb:

    Beim überfliegen Deines Codes ist mir am meisten der "prozedurale Programmierstiel" aufgefallen. Die Klassen sind ausschließlich Strukturen mit ctor.
    Evtl. hilft Dir die Beschäftigung mit dem objektorientierten Paradigma; erst wenn man dieses verinnerlicht hat, kann man die Vorzüge von C++ nutzen.
    Gruß

    Stimmt zwar so nicht, man kann C++ durchaus auch wunderbar prozedural programmieren und muss nicht immer alles zwangsläufig in Klassen packen, allerdings bietet OOP hier durchaus einige Vorteile.



  • pumuckl schrieb:

    Helmut.Jakoby schrieb:
    Beim überfliegen Deines Codes ist mir am meisten der "prozedurale Programmierstiel" aufgefallen. Die Klassen sind ausschließlich Strukturen mit ctor.
    Evtl. hilft Dir die Beschäftigung mit dem objektorientierten Paradigma; erst wenn man dieses verinnerlicht hat, kann man die Vorzüge von C++ nutzen.
    Gruß

    Stimmt zwar so nicht, man kann C++ durchaus auch wunderbar prozedural programmieren und muss nicht immer alles zwangsläufig in Klassen packen, allerdings bietet OOP hier durchaus einige Vorteile.

    Hast natürlich recht, aber ich kam beim überfliegen des Codes durch die große Funktion 'parse' drauf.
    Hatte durch die Kommentare so das Gefühl, das die einzelnen Aktionen wie Einlesen der Daten aus Strings etc. durch die einzelnen Klassen ggf. selbst erledigen werden könnte. Dann wäre das ganze evtl. schon mal 'verteilter' in den dann zuständigen Klassen.
    Gruß


Anmelden zum Antworten