"Ich möchte C++ lernen! - wie fange ich an?"



  • Hallo zusammen!
    Da in letzter Zeit doch recht häufig Threads mit dem Thema "Ich möchte C++ lernen" o.ä. aufgetaucht sind, habe ich mich "berufen" gefühlt etwas dazu zu schreiben. (Vielleicht ist es ja nützlich).

    "Ich möchte C++ lernen! - Wie fange ich an?"

    Um C++ zu lernen braucht man grundsätzlich folgende Dinge:

    * Zeit, Motivation, Ausdauer
    * Ein gutes Buch/Tutorial (am besten im plural :))
    * Die richtigen Tools

    Im Folgenden werde ich zu diesen Punkten der Liste mit Fragen und Antworten eingehen.

    Q: Warum benötige ich Zeit, Motivation, Ausdauer, etc.?
    A: Man benötigt diese Dinge, da C++ doch eine sehr komplexe Programmiersprache ist, die man nicht „mal eben“ an einem Wochenende lernt, auch wenn das einige Bücher behaupten. Der Anfang ist - wie bei den meisten Dingen - eventuell etwas mühsam, doch du wirst sehen, dass du (bei vorhandener Motivation, Zeit, etc) ständig Fortschritte machen wirst - Übung macht den Meister :-).

    Q: Was ist ein gutes Buch/Tutorial und wie kann ich es beziehen?
    A: Da es von diesen beiden Dingen doch recht viele gibt, werde ich im Folgenden nur auf ein paar gute Bücher/Tutorials verweisen sowie Bezugsquellen angeben.

    Gute Bücher sind:

    * C++ lernen und professionell anwenden von Peter und Ulla-Kirch Prinz
    * Effektiv C++ programmieren von Scott Meyers.
    * Thinking in C++ von Bruce Eckels (kostenlos verfügbar unter http://mindview.net/Books/DownloadSites)

    Beziehen kannst du diese (und viele mehr) über Amazon. Wenn du zusätzlich jedoch mit deiner Buchbestellung über Amazon noch dieses Forum unterstützen willst, dann bestelle die Bücher über den folgenden Link: http://www.c-plusplus.net/gateway.htm. Für dich selbst ändert sich dabei nichts am Preis, etc.
    Als letztes noch ein Link, in welchem verschiedene „Freaks“ ihre „C++-Buch-Favoriten“ anpreisen: http://www.c-plusplus.net/forum/viewtopic-var-t-is-94151-and-highlight-is-buchfavorit.html.

    Tutorials gibt es - ebenfalls wie Bücher - recht viele. Als Ausgangspunkt zum Suchen ist google oder die Tutorial-Seite sicher nicht ungeeignet ;-).

    Gute Tutorials sind:

    * Volkards C++-Kurs: (Link: http://volkard.de/Cpp/Tutorial/Grundlagen/index.html)
    * Shades C++-Kurs: (Link: http://tutorial.schornboeck.net/)
    * Cpp-Tutor: (Link: http://www.cpp-tutor.de/cpp/)

    Q: Welche Tools benötige ich?
    A: Um einen C++-Quellcode in ein ausführbares Programm umzuwandeln (exe-Datei), brauchst du mindestens die folgenden Tools: Einen Editor, einen Compiler und einen Linker. Was diese im Speziellen tun, wird im Folgenden besprochen.

    Q: Was ist ein Editor und wozu brauche ich ihn?
    A: Ein Editor ist ein Programm, in welchem du deinen Quellcode verfasst. Der Editor ist einer der wichtigsten Programme bei der Software-Entwicklung, da du mit ihm bzw. vor ihm die meiste Zeit des Programmierens verbringst. Der Editor sollte deshalb gewisse Features mit sich bringen, wie z.B. Syntax-Highlighting, automatische Zeilennummern, etc.

    Gute Editoren sind z.B.:

    * NEdit, Scite, ConText, kate, UltraEdit (Shareware)
    * Emacs, Vi

    Ansonsten kannst du auch einfach unter http://www.editoren.net oder http://www.google.de suchen :-).

    Beachte auch, dass ein Editor nicht mit einer Textverarbeitung zu vergleichen ist. Im Unterschied zum Editor, der nämlich „reinen“ Text abspeichert (so wie du den Text eingibst, so wird er gespeichert), formatiert die Textverarbeitung den Text noch zusätzlich und speichert ihn mit den Format-Optionen in der Datei. D.h. sie fügt die Schriftart, Schriftgröße etc. als Zusatzinformationen zur Datei hinzu.

    Q: Was ist ein Compiler und wozu benötige ich ihn?
    A: Ein Compiler übersetzt den Quellcode in Maschinencode. Das Compilieren ist ein durchaus komplexer Vorgang, welcher hier nur oberflächlich angesprochen wird. Während des compilierens einer „Datei“, geschehen mindestens die folgenden Dinge.

    * Zuerst beginnt der Präprozessor die für ihn bestimmten Anweisungen zu bearbeiten und die so genannten Präprozessor-Direktiven aufzulösen. Grob gesagt ist ein Präprozessor ein „Textersetzer“, der bestimmten Text durch einen Alternativtext ersetzt. Näheres dazu erfährst du in jedem vernünftigen Buch/Tutorial.

    * Dann untersucht der Compiler den Code auf Syntax und Semantik-Fehler. Ein Syntax-Fehler kommt aufgrund einer fehlerhaften Grammatik zustande (z.B. wenn irgendwo ein Semikolon fehlt), wogegen ein Semantik-Fehler entsteht, wenn man z.B. einen falschen Operator auf bestimmte Operanden anwendet.

    * Als dritten Schritt versucht der Compiler den bestehenden Quellcode bestmöglich zu optimieren. Beispielsweise vereinfacht er komplexe Ausdrücke. 9*9-10*10 + 19 würde z.B. zu 0, etc.

    * Als vierter und letzter Schritt des Compilier-Vorganges tritt nun endlich die Übersetzungsphase ein. In ihr wird der Quellcode aus der Quelldatei bzw. Eingabedatei (eine Datei mit der Endung .cpp) in Maschinencode übersetzt und in sogenannten Obj-Dateien (*.obj oder *.o) abgespeichert. Diese Obj-Dateien sind selbst noch nicht ausführbar, sie enthalten nur den Maschinencode, sprich die 0-en und 1-en.

    Q: Was ist ein Linker und wozu benötige ich diesen?
    A: Der Linker verbindet die beim Kompilieren entstandenen Obj-Dateien zu einer ausführbaren Datei (Exe-Datei). Dabei werden auch Bibliotheken die Standardfunktionalitäten wie z.B. Ein-/Ausgabe implementieren hinzugelinkt. Eine Bibliothek kannst du dir als eine Ansammlung von obj-Dateien vorstellen. Die Namen dieser Bibiotheken musst du (bei korrekt konfiguriertem Linker) nicht extra angeben, da sie automatisch gefunden werden.
    Statt Editor, Compiler und Linker kann man sich auch direkt eine IDE (= Integrated Development Environment) besorgen, welche die Erfassung des Quellcodes, das Compilieren und das Linken unter eine benutzerfreundlichen Oberfläche zusammenfasst und vereinfacht. Allerdings würde ich für den Anfang empfehlen mal ein paar Programme von „Hand“ zu übersetzen um das Verständnis für den Übersetzungsvorgang zu fördern.

    Q: Woher bekomme ich einen Editor, einen Compiler, einen Linker oder gar eine IDE?
    A: Auf c++.de gibt es einen Link, der sich Compiler nennt. Dort findest du verschiedene Compiler, Linker, IDEs etc. (Direkter Link: http://www.c-plusplus.net/cms/modules.php?op=modload&name=Web_Links&file=index&req=viewlink&cid=6).

    Q: Wie konfiguriere ich meinen Compiler, Linker, IDE?
    A: Da es den Rahmen dieser „FAQ“ deutlich sprengen würde, wenn ich jetzt eine Installationsanweisung für jeden Compiler angeben würde, verweise ich hier auf die Hilfe-Dateien oder Dokumentationen, die jedem (vernünftigen) Programm beiliegen. Falls es trotzdem Probleme geben sollte, ist ja auch noch das C++-Forum da, in welchem sicher gerne geholfen wird.

    So jetzt bin ich auch schon am Ende angelangt. Ich hoffe, dass dieser Text hilfreich war und wünsche dir nun viel Spaß mit C++ :-).

    Btw. Vielen Dank an Hume für die Kritik. (50% gehören dir ;))

    Caipi



  • Gute Bücher sind:

    * C++ lernen und professionell anwenden von Peter und Ulla-Kirch Prinz
    * Effektiv C++ programmieren von Scott Meyers.
    * Thinking in C++ von Bruce Eckels (kostenlos verfügbar unter http://mindview.net/Books/DownloadSites)

    die letzten beiden bücher sind ja wohl eher für fortgeschrittene c++ nutzer gedacht, und wohl hier nicht an der richtigen stelle aufgeführt 🙂


Anmelden zum Antworten