Vorgehensweise und Vorbereitungen zum Erlernen von C++

Um C++-Programme schreiben, compilieren und ausf√ľhren zu k√∂nnen, muss man sich eine geeignete Umgebung bereitstellen. Es werden einige M√∂glichkeiten beschrieben; empfohlen wird die Entwicklungsumgebungen Code::Blocks, die es in einer Version mit integriertem MinGW-Compiler gibt.
Noch keine Stimmen abgegeben
Noch keine Kommentare

Einordnung des Artikels

Vorgehensweise beim Erlernen von C++

Die Vorgehensweise zum Erlernen einer objektorientierten Programmiersprache wie C++ kann in mehrere Phasen eingeteilt werden:

  1. Vorbereitungen
  2. Sprachregeln
  3. C++ Standard Library
  4. OOP (objektorientierte Programmierung)
  5. OOAD (object-oriented analysis and desing process)

Die ersten beiden Punkte sollten nach den Vorbereitungen zur Einf√ľhrung in die Programmierung klar sein; die weiteren Punkte beziehen sich darauf, dass mit C++ eine Sprache erlernt werden soll, die zum einen schon eine lange Entwicklungsgeschichte hinter sich hat und daher viele Erfahrungen fr√ľherer Programmierer genutzt werden k√∂nnen und die zum anderen eine objektorientierte Sprache ist, in der Algorithmen eine weit weniger zentrale Rolle spielen als es die einf√ľhrenden Kapitel zur Programmierung vermuten lassen.

Im Detail:

1. Vorbereitungen:

Editor und Compiler: Um C++-Quelltexte zu schreiben, ben√∂tigt man zun√§chst einen Text-Editor. Die Quelltexte werden dann vom Compiler in die ausf√ľhrbare Datei √ľbersetzt.

Um alle neuen Sprachregeln und die M√∂glichkeiten von C++ sofort testen zu k√∂nnen, sollte man sich unbedingt vor dem Studium der eigentlichen Sprache die Umgebung zurechtlegen. Je nachdem wie ge√ľbt man bereits im Umgang mit Editoren und Compilern ist, gibt es hier viele M√∂glichkeiten (vom primitiven Text-Editor bis zur professionellen Entwicklungsumgebung, siehe unten).

2. Sprachregeln:

Die Syntax der Sprache muss einge√ľbt werden: Variablen, Datentypen, Kontrollstrukturen, Funktionen, Klassen.

3. C++ Standard Library:

Wer sicher mit den Sprachregeln umgehen kann, ist in der Lage vorgefertigten Quelltext zu verwenden. Dieser ist in der C++ Standard Library in gro√üem Umfang enthalten ‚ÄĒ deutlich mehr als in diesem kurzen Kurs besprochen werden kann. Der Einsatz der Standard-Bibliothek beschleunigt die Arbeit und hilft Fehler zu vermeiden. Weiter sind die Programme aus der Standard-Bibliothek meist schneller als eigene.

4. OOP:

Eine Kenntnis der Konzepte der objektorientierten Programmierung erlaubt den effektiven Einsatz des eigenen Quelltextes und den aus Bibliotheken: Programme können zu Modulen zusammengefasst und wiederverwendet werden.

Voraussetzung daf√ľr ist die Unterscheidung zwischen Klassen und Objekten: Eine Klasse beschreibt den allgemeinen Bauplan, ein Objekt ist eine konkrete Realisierung davon.

Dieser allgemeine Bauplan umfasst die Attribute (oder Datenelemente) und Funktionalitäten (Tätigkeiten = member functions).

5. OOAD (object-oriented analysis and design process):

f√ľr umfangreiche Projekte, die meist in einem Team bearbeitet werden; dabei werden Vorgehensweisen wichtig, wie sie sonst im Projektmanagement diskutiert werden (Arbeitsaufteilung, Zeitpl√§ne). Das wichtigste inhaltliche Hilfsmittel dabei sind UML-Diagramme.

Vorbereitungen: Compiler, Editor und eine Ordnerstruktur f√ľr Quelltexte

Um Programme zu √ľbersetzen, ben√∂tigt man einen Compiler. Die Quelltexte werden zuvor in einem Text-Editor geschrieben. Es gibt zahllose M√∂glichkeiten, wie man Compiler und Editor kombiniert. In einer sogenannten IDE (= integrated development environment) sind Editor und Compiler meist schon enthalten, manchmal muss auch ein externer Compiler installiert werden. Eine IDE liefert meist zus√§tzliche Funktionalit√§ten, erfordern aber eine lange Einarbeitungszeit, um diese auch nutzen zu k√∂nnen.

V√∂llig ungeeignet zum Editieren von Quelltexten sind Textverarbeitungsprogramme wie Word, OpenOffice oder LibreOffice ‚ÄĒ nachdem Sie erste Erfahrungen mit C++ gesammelt haben, werden Sie schnell verstehen warum.

Hier werden einige dieser zahllosen Möglichkeiten vorgestellt, die zunehmende Erfahrung im Umgang mit Editoren und Compilern voraussetzen:

  1. Dev-C++
  2. MinGW Compiler
  3. Text-Editor Notepad++
  4. Visual Studio Code
  5. IDEs wie Eclipse oder Visual Studio Community
  6. Empfehlung: Code::Blocks (mit MinGW-Compiler)

TIP:

Installieren Sie zunächst Code::Blocks (mit integriertem Compiler) und machen Sie sich schnell damit vertraut, wie Sie den Compiler außerhalb von Code::Blocks nutzen können. Dann können Sie jederzeit auf eine der anderen Varianten umsteigen.

Dev-C++

Die wohl einfachste Variante, um mit C++-Programmen zu arbeiten, ist die Installation der Entwicklungsumgebung Dev-C++, die unter

https://sourceforge.net/projects/orwelldevcpp/

heruntergeladen werden kann. Dev-C++ ist freie Software und enthält bereits einen C++-Compiler, so dass man als Nutzer nach der Installation sofort loslegen kann.

Obwohl es ‚ÄĒ wie f√ľr jede Entwicklungsumgebung ‚ÄĒ eine Projektverwaltung gibt, sollte man sich dennoch vor dem Anlegen des ersten Projektes eine Ordnerstruktur √ľberlegen (siehe weiter unten). Auch kann man unter Build Options f√ľr Executable Output Directory und Object File Output Directory selber die Orte angeben; dies ist empfehlenswert, weil dann die Projekte √ľbersichtlicher bleiben.

MinGW Compiler

Wer den Compiler v√∂llig unabh√§ngig von einer Entwicklungsumgebung nutzen m√∂chte, sollte den MinGW-Compiler installieren. Mit ihm kann dann ein C++-Programm jederzeit von der Konsole aus kompiliert und ausgef√ľhrt werden.

Installation des MinGW Compilers

Ein C++-Compiler ist zum Erlernen der Programmiersprache unerlässlich. Der MinGW-Compiler (MinGW = Minimalist GNU for Windows) liefert die Funktionalitäten, die zum Einstieg nötig sind. Auf der Projektseite

http://www.mingw.org/

findet man unter Downloads den Installer und unter Documents zahlreiche Dokumentationen.

Bei der Installation werden Compiler f√ľr mehrere Sprachen angeboten, C++ muss nat√ľrlich dabei sein!

Nach der Installation in einem Verzeichnis, dessen Name keine Leerzeichen enthalten sollte, findet man im Homeverzeichnis von MinGW, hier als

<MinGW-home>

bezeichnet, das Verzeichnis bin (binaries), also:

<MinGW-home>\bin

Dort liegen die zum Compilieren eines C++-Programmes nötigen .exe-Dateien wie gpp.exe oder g++.exe.

Die Installation enthält auch die meisten Systembibliotheken, auf die man als Anfänger zugreifen möchte, sie liegen in

<MinGW-home>\lib\gcc\mingw32\5.3.0\include\c++

(5.3.0 war die aktuelle Versionsnummer von MinGW beim Erstellen dieses Textes.)

Kommt es beim Kompilieren eines Programmes mit inkludierten Systembibliotheken zu Fehlermeldungen, wonach einige Systembibliotheken fehlen, kann dies mehrere Ursachen haben:

  1. Man hat den Compiler mit gpp.exe aufgerufen. Der Compiler, der sich hinter gpp.exe verbirgt, lädt die Systembibliotheken nur, wenn man sie bei seinem Aufruf explizit angibt.
  2. Der Compiler g++.exe lädt die Systembibliotheken selbständig aus dem genannten Verzeichnis. Kommt mit g++ immer noch eine Fehlermeldung, muss man womöglich einige .dll-Dateien nachträglich installieren. (Die Fehlermeldung lautet etwa: libmpc-3.dll missing) Dies geschieht besser nicht aus der graphischen Oberfläche, die bei der Installation zu sehen war, sondern direkt aus der Konsole.

Dazu wird wieder in

<MinGW-home>\bin

der Befehl

mingw-get install mpc

aufgerufen. Nach einem Neustart des Computers sollte der Fehler behoben sein.

Compilieren mit MinGW

Befindet sich etwa im Verzeichnis

<C++Programme>

die Datei

HelloWorld.cpp

so kann sie folgenderma√üen in Maschinencode √ľbersetzt werden: Man √∂ffnet im Verzeichnis, in dem HelloWorld.cpp liegt, eine Konsole und gibt ein

<MinGW-home>\bin\g++ HelloWorld.cpp -o HelloWorld

Dieser Befehl ruft den Compiler g++ aus dem bin-Verzeichnis von MinGW auf, compiliert die Datei HelloWorld.cpp und erzeugt die ausf√ľhrbare Datei HelloWorld.exe. Sie k√∂nnen die .exe-Datei im Explorer sehen. Hat der Quelltext von HelloWorld.cpp noch Syntax-Fehler enthalten, wird die exe-Datei nicht erzeugt, aber in der Konsole erscheinen Fehlermeldungen, die Ihnen hoffentlich weiterhelfen, um den Quelltext auszubessern.

Aufgerufen wird das Programm (die Konsole ist immer noch in dem Verzeichnis ge√∂ffnet, in dem sich HelloWorld.cpp befindet ‚ÄĒ und jetzt auch HelloWorld.exe) mit

HelloWorld

Vermutlich erzeugt Ihr Programm Konsolenausgaben ‚ÄĒ diese erscheinen jetzt in der Konsole.

Text-Editor Notepad++

Notepad++ ist ein einfach zu bedienender Text-Editor. Er bietet sich als Default-Editor f√ľr alle Text-Dateien an, da er f√ľr zahlreiche Programmiersprachen Syntax-Highlighting besitzt ‚ÄĒ nat√ľrlich auch f√ľr C++ (Sie k√∂nnen es auch gem√§√ü Ihren W√ľnschen anpassen). Die in ihm erstellten Quelltexte k√∂nnen wie oben beschrieben mit Hilfe von MinGW √ľbersetzt und ausgef√ľhrt werden.

Mit dem Plugin NppExec f√ľr Notepad++ kann man den Compiler-Aufruf und die Ausf√ľhrung der .exe-Datei auch direkt von Notepad++ aus erledigen.

Bevor Sie anfangen, mehrere C++-Programme zu schreiben und zu testen, √ľberlegen Sie sich eine Ordnerstruktur, in der Sie Ihre Quelltexte ablegen, so dass Ihre Arbeit √ľbersichtlich bleibt und Sie sp√§ter schnell darauf zugreifen k√∂nnen.

Visual Studio Code

1. Installation von Visual Studio Code und Vorbereitung f√ľr C++

Nach der Installation ist Visual Studio Code noch nicht in der Lage, Sie beim Erstellen von C++-Quelltexten zu unterst√ľtzen ‚ÄĒ man hat zun√§chst einen reinen Text-Editor vor sich. Sie ben√∂tigen zus√§tzlich die Extension C/C++.

Nach deren Installation werden Sie deutlich besser unterst√ľtzt als bei Notepad++: es gibt Syntax-Highlighting (wof√ľr man zwischen mehreren themes ausw√§len kann), Autovervollst√§ndigung und Text-Vorschl√§ge.

Um mit Visual Studio Code auch arbeiten zu können, muss der C++-Compiler installiert sein. Man kann ihn direkt von der Konsole aus einsetzen wie oben beschrieben. Oder man kann ihn aus Visual Studio Code ansprechen.

2. Compilieren von C++-Programmen

Bisher wurde Visual Studio Code nur eingesetzt, um Quelltexte zu schreiben. Man kann den Compiler auch direkt ansprechen. Dazu sucht man unter

Anzeigen ... Befehlspalette

nach

Taskausf√ľhrung konfigurieren

oder

Configure Task Runner

Es öffnet sich eine Datei tasks.json. Die default-Version sieht etwa folgendermaßen aus:

{
    "version": "0.1.0",
    "command": "echo",
    "isShellCommand": true,
    "args": ["Hello World"],
    "showOutput": "always"
}

Die entscheidenden Zeilen darin sind command und args. Die Bedeutung von

"command": "echo",

ist, dass das in die Konsole eingegebene Kommando (hier Hello World ) nochmals auf der Konsole ausgegeben wird ‚ÄĒ so hat man zumindest die Gewissheit, dass die Konsole erfolgreich angesprochen wurde.

Zum Compilieren eines C++-Quelltextes muss der MinGW-Compiler g++ angesprochen werden (geschieht in command) und der Rest des Befehls wandert in die args.

"command": "<MinGW-home>\\bin\\g++ ",
"args": ["HelloWorld.cpp", "-o" "HelloWorld"],

Achten Sie darauf, dass jetzt jeder backslash in der Pfadangabe mit einem zus√§tzlichen backslash markiert werden muss (warum das n√∂tig ist, lernen Sie sp√§ter in C++). Und die drei √ľbergebenen Argumente m√ľssen wie eine Liste behandelt werden (also in eckigen Klammern, jedes Listenelement in Anf√ľhrungsstrichen und durch Kommas getrennt); schreibt man alle args in die Anf√ľhrungsstriche, wird das Argument falsch interpretiert. Es w√§re also falsch f√ľr args einzugeben:

"args": ["HelloWorld.cpp -o HelloWorld"], // FALSCH!!

Diese Eingabe wird interpretiert als ein Dateiname, der Leerzeichen enthält.

Die Bedeutung von command und args (aus der richtigen Version):

  • Der Compiler g++ wird angesprochen und das C++-Programm in der Datei HelloWorld.cpp wird compiliert,
  • das Maschinensprache-Programm wird in der Datei HelloWorld.exe abgespeichert (.exe ist aber nicht anzugeben),
  • falls der Quelltext noch Fehler enthalten hat, wird keine .exe-Datei erzeugt, stattdessen sollten auf der Konsole Fehlermeldungen zu sehen sein.

Zum Ausf√ľhren des Programms gibt man einfach in die Konsole

HelloWorld

ein; es sollten die Konsolenausgaben des Programms erscheinen.

IDEs wie Eclipse oder Visual Studio Community

Diese werden hier nicht ausf√ľhrlich vorgestellt; wer mit solch schwergewichtigen Entwicklungsumgebungen arbeiten m√∂chte, muss auch in der Lage sein, diese selbst√§ndig zum Laufen zu bringen. Es sei nur darauf hingewiesen, dass die Installation von Visual Studio Community etwa 20 GB Speicherplatz beansprucht (und regelm√§√üige Updates) und daher gut √ľberlegt sein sollte.

Code::Blocks (mit MinGW-Compiler)

Die Entwicklungsumgebung Code::Blocks wird in zwei Versionen angeboten: mit oder ohne den MinGW-Compiler. Falls Sie den MinGW-Compiler bereits installiert haben, reicht die Version ohne MinGW-Compiler, Sie m√ľssen Code::Blocks nur sagen, wo der Compiler zu finden ist.

Haben Sie die Version mit MinGW-Compiler installiert, m√ľsste Code::Blocks nach der Installation sofort einsatzbereit sein.

Die Homepage f√ľr Code::Blocks lautet:

http://www.codeblocks.org/

Ein umfangreiches Wiki mit zahlreichen Dokumentationen und Hilfen finden Sie unter:

http://wiki.codeblocks.org/index.php/Main_Page

Ordnerstruktur f√ľr Quelltexte

√úberlegen Sie sich schon bevor Sie die ersten Quelltexte schreiben, wie Sie diese in einer geeigneten Ordnerstruktur unterbringen, so dass Sie schnell auffindbar sind. Vergeben Sie dazu etwa Namen f√ľr Unterordner, die sich an der Gliederung der besprochenen Inhalte orientieren (wie Syntax, Schleifen, OOP und so weiter).

Sie werden sehen, wie wichtig es ist, auf die Quelltexte schnell zuzugreifen: weniger, weil Sie die Quelltexte wiederverwenden wollen ‚ÄĒ hier handelt es sich meist um Sandkastenspiele, mit denen die Sprachelemente einge√ľbt werden. Vielmehr dokumentieren diese Sandkastenspiele Ihren Lernerfolg und Sie werden diese als Nachschlagewerk lieber benutzen als Lehrb√ľcher.

Dazu sollten Sie auch fr√ľh genug beginnen, Quelltexte ausf√ľhrlich zu kommentieren ‚ÄĒ weniger um das Programm zu beschreiben sondern um die Sprachelemente und den Umgang damit zu beschreiben.

Falls Sie verschiedene Editoren oder Entwicklungsumgebungen ausprobieren wollen, sollten Sie niemals eine Datei aus dem workspace einer Entwicklungsumgebung mit einer anderen Entwicklungsumgebung öffnen. Denn eine Entwicklungsumgebung legt immer Dateien zur Projektverwaltung an und womöglich entstehen ärgerliche Konflikte.

TIP:

F√ľr jeden Editor oder jede Entwicklungsumgebung einen eigenen workspace anlegen.

Text-Editor und Datei-Browser

F√ľr alle folgenden T√§tigkeiten ist es wichtig, dass Sie

  1. Einen Text-Editor zur Verf√ľgung haben; oben wurde bereits Notepad++ empfohlen, der f√ľr viele Programmier- und Auszeichnungssprachen ein Syntax-Highlighting besitzt.
  2. Mit dem Datei-Browser umgehen können und diesen insbesondere so einstellen, dass die Datei-Endung erkennen können.

Fehler:

Gerade typische Anwender neigen dazu, den Datei-Browser so einzustellen, dass die Datei-Endung nicht angezeigt wird (weil man bestimmte Datei-Typen mit nur einem Programm öffnet). Als Programmierer muss man immer wissen, welchen Datei-Typ man vor sich hat und diese oft mit einem Text-Editor öffnen. Daher immer den Datei-Browser so einstellen, dass die Datei-Endung sichtbar ist.