C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup:...

105
Anja Aue | 12.12.2017 C++ - Einführung in die Programmiersprache

Transcript of C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup:...

Page 1: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

Anja Aue | 12.12.2017

C++ - Einführung in die Programmiersprache

Page 2: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 2

Handbücher des IT Services

C++ für C-Programmierer C und C++ für Java-Programmierer

Page 3: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 3

Bücher

Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley.

Ulrich Breymann: Der C++-Programmierer: C++ lernen – professionell anwenden – Lösungen nutzen. Carl Hanser Verlag

Thomas Theis: Einstieg in C++: Ideal für Programmiereinsteiger. Rheinwerk.

Torsten T. Will: C++. Das umfassende Handbuch. Rheinwerk.

Page 4: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 4

Bücher zur Standardbibliothek

Rainer Grimm: C++-Standardbibliothek - kurz & gut. O'Reilly. 1. Auflage.

Peter Van Weert & Marc Gregoire: C++ Standard Library Quick Reference. APress.

Page 5: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 5

PDF-Dokumente im Netz

TU Braunschweig: https://www.tu-braunschweig.de/Medien-DB/statik/software/einfuehrung_in_cpp.pdf

Universität Graz: https://imsc.uni-graz.at/haasegu/Lectures/Kurs-C/Script/html/script_programmieren.pdf

DHBW Stuttgart: http://wwwlehre.dhbw-stuttgart.de/~kfg/cpp/cpp.pdf

Page 6: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 6

Tutorials im Web

http://www.stroustrup.com/C++.html http://www.cplusplus.com/doc/tutorial/ http://www.cprogramming.com/tutorial.html http://www.learncpp.com/ http://www.etp.physik.uni-

muenchen.de/kurs/Computing/ckurs/cxx.html http://www.cpp-tutor.de/cpp/hinweise.html https://de.wikibooks.org/wiki/C%2B%2B-

Programmierung/_Inhaltsverzeichnis

Page 7: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 7

C++

ISO genormte Programmiersprache. Objektorientierte und generische Programmierung. Komplexe, flexible Programmiersprache. Hardware-nahe Programmierung.

Page 8: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 8

Einsatzmöglichkeiten

Treiber für die verschiedenste Hardware. Entwicklung von Systemprogrammen. Zeitkritische Spiele. Eine Liste von Beispielen finden Sie unter

http://www.stroustrup.com/applications.html.

Page 9: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 9

Geschichte

Ca. 1979 arbeitet Bjarne Stroustrup an einer Programmiersprache unter dem Namen „C mit Klassen“.

1983 ändert sich der Name der Programmiersprache in C++. 1985 wird die erste Referenz zu der Programmiersprache von

Bjarne Stroustrup veröffentlicht. 1990 wird Borland's Turbo C++ -Compiler als erste

kommerzielles Produkt für die Programmiersprache angeboten.

Page 10: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 10

Standard

C++98. ISO/IEC 14882:1998. Publiziert im Jahr 1998. Erste Standardisierung der Programmiersprache. Ergänzung der Norm im Jahr 2003.

C++11. ISO/IEC 14882:2011. Publiziert im April 2011. Ersetzung der alten Versionen.

C++14. ISO/IEC 14882:2014. Publiziert im Januar 2015. Erweiterungen und Ergänzungen zu C++11.

C++17. ISO/IEC 14882:2017. Publiziert im März 2017. Die Änderung werden auf der Webseite https://isocpp.org/files/papers/p0636r0.html beschrieben.

Page 11: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 11

Programmierkonzepte

Prozedurale und modulare Programmierung. Anlehnung an die Programmiersprache C.

Objektorientierte Programmierung. Generische Programmierung.

Page 12: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 12

Prozedurale Programmierung

Top-down Entwurf. Welche Aufgabe soll abgebildet werden? Mit Hilfe von Funktionen wird die Aufgabe in kleinere Einheiten

gegliedert. Strukturierter Code, aber keine strukturierten Daten.

Page 13: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 13

Modulare Programmierung

Der Quellcode wird in verschiedenen Dateien zusammengefasst.

Trennung von Deklaration und Implementierung von Funktionen. Die Deklaration wird in Header-Dateien abgelegt. Die Implementierung wird in Dateien mit der Endung .cpp geschrieben.

Module sind Programme, die in sich geschlossen sind.

Page 14: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 14

Objektorientierte Programmierung

Bottom-up Design. Welche Daten werden zur Beschreibung eines Objekt benötigt? Welche Methoden werden zur Modifizierung eines Objektes

benötigt? Kapselung von Eigenschaften und Verhalten eines Objekts in

einer Klasse. Attribute und Methoden können an Kinder vererbt werden.

Page 15: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 15

Generische Programmierung

Nutzung von Schablonen zur Beschreibung eines Objekts. Schreiben von Methoden unabhängig vom Typ des Objektes. Templates bieten die Möglichkeiten Vorlagen für Objekte zu

erstellen.

Page 16: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 16

Entwicklungsumgebungen (IDE)

NetBeans (http://www.netbeans.org/) Code::Blocks (http://www.codeblocks.org/) KDevelop (http://www.kdevelop.org/) CodeLite (https://codelite.org/) Microsoft Visual Studio (https://www.visualstudio.com/)

Page 17: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 17

Online-Editoren zum Testen von Code

http://coliru.stacked-crooked.com/ https://godbolt.org/

Page 18: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 18

IDE im Kurs: NetBeans

1996 entwickelt von Studenten aus der Tschechischen Republik. 1999 Übernahme durch Sun Microsystems. 2010 Übernahme durch Oracle.

Als weitere Programmiersprachen werden Java, PHP und JavaScript unterstützt..

Download unter https://netbeans.org/.

Page 19: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 19

Installationshilfe im Web

https://wiki.fbihome.de/Netbeans https://netbeans.org/kb/trails/cnd.html

Page 20: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 20

Start von NetBeans

Icon auf dem Desktop. Windows 8 und höher: Suchen … Im Installationspfad von NetBeans: bin\netbeans64.exe.

Page 21: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 21

Startseite

Page 22: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 22

Anzeige oder Ausblenden der Startseite

Aktivierung des Kontrollkästchens Show on startup. Die Startseite wird beim Starten des Editors automatisch angezeigt.

Deaktivierung des Kontrollkästchens Show on startup. Die Startseite wird beim Starten des Editors nicht mehr angezeigt.

Page 23: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 23

IDE anpassen

Tools – Options.

Page 24: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 24

Möglichkeiten

Die Symbole am oberen Rand stellen die verschiedenen Kategorien dar.

General. Einstellungen für die Programmierung im Web. Editor. Automatische Ergänzung von Schlüsselwörtern etc.

Einstellung von Einrückungen im Codefenster. Fonts & Color. Welche Schriftart und -farbe wird im

Codefenster genutzt? Keymap. Welche Tastaturkürzel werden genutzt? C/C++. Einstellungen zu der Programmiersprache C oder C++.

Page 25: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 25

Einstellungen für den Editor

Page 26: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 26

Hinweise

Das Kombinationsfeld Language hat standardmäßig die Einstellung All Languages.

Durch Auswahl der passenden Programmiersprache kann der Editor an die gewünschte Sprache angepasst werden.

Page 27: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 27

Einstellungen C / C++

Page 28: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 28

Erläuterung

Build Tools. Pfadangaben zum Compiler, Debugger etc. Auflistung von Tools, die zur Erstellung eines lauffähigen C++-Programms benötigt werden.

Project Options. Regeln zur Erstellung von Objektcode mit Hilfe von make.

Code Assistence. Siehe https://netbeans.org/kb/docs/cnd/HowTos.html

Debugging Options. Other. Dateiendungen und deren C++-Standard.

Page 29: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 29

Projekt anlegen

File – New Project.

Page 30: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 30

1. Schritt: Auswahl einer Projektkategorie

Categories „C/C++“. Projects „C/C++ Application“. Das Grundgerüst für ein Programm in der Sprache C++ wird

automatisiert erstellt.

Page 31: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 31

2. Schritt: Name und Speicherort des Projekts

Page 32: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 32

Zeile „Project Name“

Name eines Ordners im Windows Explorers. In dem Ordner werden Dateien zur Erzeugung ein lauffähiges

C++-Programm abgelegt. Standardmäßig wird der Name CppApplication_ und eine

fortlaufende Nummer genutzt.

Page 33: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 33

Hinweise zum Namen

Der Name sollte nur die Groß- und Kleinbuchstaben a…z, die Zahlen 0...9 und den Unterstrich enthalten.

Der Name sollte die Aufgabe des C++-Programms widerspiegeln.

Zusammengesetzte Bezeichner sollten die Kamel-Notation nutzen. Jedes Wort in dem Projektnamen beginnt mit einem Großbuchstaben.

Page 34: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 34

Zeile „Project Location“

In welchem Verzeichnis wird der Ordner (das Projekt) erzeugt? Mit Hilfe der Schaltfläche Browse... kann der Speicherort für

das Projekt festgelegt werden. Die Zeile Project Folder setzt sich aus dem Projektnamen und

dem gewählten Speicherort zusammen.

Page 35: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 35

Zeile „Create Main File“

Standardeinstellung Erzeuge eine Datei main. Die Datei hat die die Endung .cpp als Kennzeichnung für ein

C++-Programm. Jedes lauffähige C++-Programm hat eine Datei main.cpp. In

dieser Datei befindet sich häufig eine Funktion main() als Startpunkt für das Programm.

Page 36: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 36

Zeile „Tool Collection“

Mit welchen Compiler wird das Programm in einen für den Computer lesbaren Code umgewandelt.

Mit welchen Compiler wird das Programm übersetzt?

Page 37: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 37

Projekt schließen

File – Close Project (ProjectName).

Page 38: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 38

Benutzeroberfläche

Page 39: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 39

Aufbau der Benutzeroberfläche

In der Titelleiste wird der Name des Projekts angezeigt. Menüleiste. Symbolleiste für die wichtigsten Befehle. Mit Hilfe von View –

Toolbars können Symbolleisten ein- oder ausgeblendet werden.

Diverse Fenster für den Code und Informationen zu dem Projekt.

Page 40: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 40

Fenster in der IDE

Fenster bündeln mit Hilfe von Registerkarten die verschiedenen Informationen.

Ein Fenster besitzt mindestens eine Registerkarte.

Page 41: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 41

An den linken Rand angedockte Fenster

Mit Hilfe der Schaltfläche am oberen rechten Rand des Fensters, kann dieses auf die Titelleiste minimiert werden.

Die Titelleiste wird am linken Rand der IDE angezeigt.

Page 42: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 42

Minimiertes Fenster

Der Mauszeiger liegt über einem Titel am linken Rand der IDE. Das Fenster wird eingeblendet.

Mit Hilfe des Kreuzes in der Titelleiste kann das Fenster geschlossen werden.

Das Symbol am rechten Rand dockt ein Fenster an. Das Fenster wird dauerhaft angezeigt.

Page 43: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 43

Registerkarten in einem Fenster

Am oberen Rand der Registerkarte wird der Name und die Schließen-Schaltfläche angezeigt

Mit Hilfe von Drag & Drop kann eine Registerkarte von einem Fenster in ein anderes Fenster verschoben werden.

Mit Hilfe des Menüs Window können die verschiedenen Registerkarten geöffnet werden. Die Einträge für die Registerkarten haben ein entsprechendes Symbol am linken Rand.

Page 44: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 44

„Ordner“ öffnen oder schließen

Klick auf das Pluszeichen: Ein Ordner wird geöffnet. Der Inhalt wird angezeigt.

Klick auf das Minuszeichen: Ein Ordner wird geschlossen.

Page 45: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 45

Projekt-Explorer

Die Registerkarte Projects bildet die Struktur eines C++-Projektes in NetBeans ab.

Der Wurzelordner spiegelt den Namen des Projekt wieder.

Der Ordner Source Files enthält Dateien mit der Endung „.cpp“. Quelldateien in der Sprache C++ werden in diesem Ordner gespeichert.

Der Ordner Header Files enthält Deklarationsdateien mit der Endung „.h“.

Page 46: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 46

Registerkarte Files

Darstellung wie im Windows Explorer. Die Datei main.cpp enthält Code zum

Starten eines C++-Programms. Der Projekt-Explorer ordnet die Datei in den Ordner Source Files ein.

Die Datei Makefile steuert die Kompilierung des Codes. Der Projekt-Explorer ordnet die Datei in den Ordner Important Files ein.

Im Ordner build werden die erstellten Objektdateien (*.o) abgelegt

Page 47: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 47

Anzeige von mehreren Projekten

Mausklick auf einen beliebigen Projektnamen in der Registerkarte Projects: Das Projekt wird aktiviert. Das aktive Projekt wird kompiliert und gestartet.

Rechter Mausklick auf einen beliebigen Projektnamen in der Registerkarte Projects: Das Kontextmenü zu einem Projekt wird geöffnet

Mit Hilfe des Befehls Delete im Kontextmenü eines Projektes wird das aktive Projekt gelöscht.

Page 48: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 48

Kontextmenü eines Projekts

Mit Hilfe des Befehls Delete im Kontextmenü eines Projektes wird das aktive Projekt gelöscht.

Der Befehl Set as Main Project kennzeichnet das gewählte Projekt mit einer Fettschrift. Dieses Projekt wird standardmäßig kompiliert.

Build erzeugt ein lauffähiges Programm.

Run startet das gewählte Projekt.

Page 49: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 49

Schließen von Projekten

File – Close Project. Rechtsklick auf das

Wurzelverzeichnis. Menüelement Close.

Page 50: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 50

Optionen zu einem Projekt

Rechtsklick auf den Projektnamen. Menü Properties. Andere Möglichkeit: File – Project Properties. In der Liste Categories können die verschiedenen Kategorien

der Einstellungsmöglichkeiten gewählt werden. In der Abhängigkeit der gewählten Kategorie werden die Einstellungen zu dem Projekt rechts angezeigt.

Page 51: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 51

Beispiel

Page 52: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 52

Einstellungen für den Compiler

Categories Build – C++ Compiler. Bereich Basic Options auf der rechten Seite. C++-Standard. Mit Hilfe des Kombinationsfeld kann der

Standard für dieses Projekt festgelegt werden. Tool. Wie wird wird die Quelldatei compiliert? Mit welchen

Werkzeug wird die Quelldatei in ein lauffähiges Programm übersetzt?

Page 53: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 53

Hinweise zum C++-Standard

NetBeans nutzt standardmäßig C++11 als Standard. Die Quelldateien in dem gewählten Projekt werden

entsprechend des eingestellten Standards geprüft. Der Standard in NetBeans wird in dem Menü Tools – Options in

der Kategorie C/C++ auf der Registerkarte Other festgelegt. Der gewählte Standard kann in Abhängigkeit der Dateiendungen eingestellt werden.

Page 54: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 54

Genutzter Zeichensatz

Categories General. Encoding am unteren Rand des Fensters. In welchen Zeichensatz wird der Code gespeichert? Für das Code-Fenster sollte der Zeichensatz UTF-8 eingestellt

werden.

Page 55: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 55

Code-Fenster in NetBeans

Page 56: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 56

Codefenster

Die, im Projekt-Explorer ausgewählte Datei wird angezeigt. Struktur einer Code-Datei in der Programmiersprache C++. Für jede Datei wird eine Registerkarte angelegt.

Page 57: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 57

Schriftart und -farbe im Codefenster

Tools – Options. Fonts & Colors.

Page 58: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 58

Grundgerüst in „NetBeans“/* * File: %<%NAME%>%.%<%EXTENSION%>% * Author: %<%USER%>% * * Created on %<%DATE%>%, %<%TIME%>% */

#include <iostream>

using namespace std;/* * */int main(int argc, char** argv) { std::cout << "Hello World \n";

return 0;}

Page 59: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 59

Anzeige im Codefenster

Vom Entwickler eingegebener Text. Code in einer bestimmten Programmiersprache, der von

Menschen gelesen werden. Schlüsselwörter, Kommentare etc. aus der

Programmiersprache C++.

Page 60: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

Programmiersprache Python Seite 60

Kommentare

Hilfe für den Entwickler. Wer hat wann welche Änderung vorgenommen? Warum werden diese Anweisungen hier ausgeführt? Kommentare im Code müssen bei Änderungen angepasst

werden. Der Computer überliest Kommentare bei der Ausführung.

Page 61: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 61

… in C++

/* * File: %<%NAME%>%.%<%EXTENSION%>% * Author: %<%USER%>% * * Created on %<%DATE%>%, %<%TIME%>% */

Beginn: Schrägstrich und Sternchen. Ende: Sternchen und Schrägstrich. Zwischen dem Schrägstrich und dem Sternchen darf kein Leerzeichen stehen.

Am Anfang einer Datei wird das Programm beschrieben. NetBeans stellt Kommentare in grauer Schrift dar.

Page 62: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 62

Aufbau eines C++-Programms

Präprozessor-Anweisung

int main ()

}

Anweisung;

Anweisung;

return 0;

using namespace std;

{

Page 63: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 63

Präprozessor-Anweisungen

Beginn mit dem Hash-Zeichen (#). Beendigung mit der Zeile und nicht mit einem Semikolon. Positionierung am Anfang einer Quelldatei (.cpp) oder Header-

Datei (.h). Diese Zeilen werden vor dem Übersetzen eines Programms in

ein lauffähiges Programm ausgeführt.

#include <iostream>

Page 64: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 64

Einbindung von Bibliotheken

Die Datei iostream wird in einem Verzeichnis include gesucht. Zum Beispiel C:\MinGW\lib\gcc\mingw32\6.3.0\include\c++

Durch die Einbindung der Bibliothekt wird die Funktionalität der Sprache C++ erweitert.

Die Datei iostream bietet Methoden für die Ein- und Ausgabe in die Konsole etc.

#include <iostream>

Page 65: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 65

Mögliche Speicherorte

Tools – Options. Anzeige der Kategorie C/C++. Registerkarte Code Assistance. Aktivierung der Registerkarte

C++ Compiler. Das Verzeichnis include enthält fremde Deklarationsdateien

für Funktionen, Klassen etc.. Diese Dateien können in das eigene Programm eingebunden werden.

Page 66: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 66

Angabe eines Namensraums

Namensräume fassen Code in einem Container zusammen. Namensräume legen die Gültigkeit von Methoden und so

weiter fest. Vermeidung von Namenskonflikten. Zeilen im Anschluss an die Präprozessor-Anweisungen.

using namespace std;

Page 67: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 67

Standard-Namensraum

In diesem Beispiel wird der Namensraum std genutzt (using namespace).

In dem Namensraum std ist die C++-Standardbibliothek abgelegt. Alle eingebundenen Dateien aus der C++-Standardbibliothek können genutzt werden.

using namespace std;

Page 68: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 68

C++ - Standardbibliothek

Bibliothek der Programmiersprache C++. Erweiterung des Sprachumfangs von C++. Vorgefertigte Elemente für die Ein- und Ausgabe,

mathematische Funktionen und so weiter.

Page 69: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 69

Informationen im Web

http://gcc.gnu.org/onlinedocs/libstdc++/ http://www.cplusplus.com/reference/clibrary/ http://de.cppreference.com/w/cpp/header https://de.wikibooks.org/wiki/C%2B%2B-Programmierung/

_Die_STL http://www.hpc.canterbury.ac.nz/UCSC

%20userdocs/ForUCSCWebsite/C/AIX/standlib.pdf

Page 70: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 70

Funktion main

Jedes ausführbare Programm in C++ muss einmal die Funktion main enthalten. Die Funktion bietet einen Startpunkt für ein C++-Projekt.

Jede Funktion hat eine Signatur, die den Aufruf beschreibt. Jede Funktion hat einen Codeblock, der die verschiedenen

Programmierbefehle zusammenfasst.

int main(int argc, char** argv) {

}

Page 71: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

Programmiersprache Python Seite 71

Arbeitsweise von Funktionen

Funktionen entsprechen einer Fertigungsstraße in einer Fabrikhalle.

Der Betrachter von außen sieht das Material, welches verarbeitet werden soll. In diesem Beispiel wird die Anzahl der Elemente (argc) in dem Feld und das Feld selbst (argv) übergeben.

Der Betrachter sieht am Ende das fertige Werkstück. In diesem Beispiel die Ausgabe von 0. Das Programm wurde fehlerfrei durchlaufen.

Die Arbeitsschritte sieht der Nutzer der Funktion nicht.

{ std::cout << "Hello World \n"; return 0;}

0

argc argv

Page 72: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 72

Aufbau der Funktion main

{ std::cout << "Hello World \n";

return 0;}

int main(int argc, char** argv) Kopf der Funktion.

Codeblock zu einer Funktion

Typ des Rückgabe-

werts.

Parameterliste.

Page 73: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 73

Signatur einer Funktion

Welches Werkstück wird am Ende der Fertigungsstraße zurückgegeben? In diesem Beispiel wird eine Ganzzahl (int) zurückgegeben.

Jede Funktion hat einen Namen. Mit Hilfe des Namens wird die Funktion aufgerufen. Der Einstiegspunkt main muss exakt so wie im Beispiel geschrieben werden.

Welche Elemente werden bei Beginn der Fertigung benötigt? Die Parameterliste gibt Auskunft über diese Elemente.

int main(int argc, char** argv)

int main()

Page 74: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 74

Parameterliste einer Funktion

Im Anschluss an den Namen der Funktion folgt die Parameterliste.

Die Parameterliste wird durch die runden Klammern begrenzt.

Die Parameterliste kann leer sein. Es werden keine Elemente zum Start der Fertigung benötigt.

int main(int argc, char** argv)

int main()

Page 75: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 75

Parameter einer Funktion

Die Parameterliste kann beliebig viele Parameter unterschiedlichsten Typs auflisten.

Die Parameter werden durch ein Komma getrennt.

int main(int argc, char** argv) { std::cout << "Hello World \n";

return 0;}

Page 76: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 76

Parameter der Funktion main

Der erste Parameter gibt die Anzahl der Elemente in der Liste argv an.

Die Liste argv besteht aus x verschiedenen Elementen. Die Elemente werden beim Start von einem Terminal eingelesen.

int main(int argc, char** argv) { std::cout << "Hello World \n";

return 0;}

Page 77: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 77

Codeblock der Funktion main

Mit Hilfe der geschweiften Klammern werden Anweisungen zu einem Block zusammengefasst.

Anweisungen beschreiben eine Aktion mit Hilfe der Programmiersprache C++.

int main(int argc, char** argv) { std::cout << "Hello World \n";

return 0;}

Page 78: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 78

Anweisungen

Anweisungen können zum Beispiele Literale wie zum Beispiel 0 oder Schlüsselwörter aus C++ enthalten.

Anweisungen können zum Beispiel Elemente auf der Konsole ausgeben oder das Werkstück an den Aufrufer zurückgeben.

Jede Anweisung wird mit einem Semikolon beendet.

int main(int argc, char** argv) { std::cout << "Hello World \n";

return 0;}

Page 79: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 79

Schlüsselworte in C++

Reservierte Wörter in C++. Schlüsselwörter bilden den Sprachkern der

Programmiersprache. Siehe: http://de.cppreference.com/w/cpp/keyword oder

https://en.wikibooks.org/wiki/C%2B%2B_Programming/Programming_Languages/C%2B%2B/Code/Keywords

Page 80: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 80

Rückgabewert einer Funktion

Das Schlüsselwort return liefert einen Wert an den Aufrufer zurück.

Der Typ des Wertes wird in der Funktionsdefinition bestimmt. In diesem Beispiel wird eine Ganzzahl (int) zurückgegeben.

Der Rückgabewert 0 symbolisiert, dass die Fertigung ohne Fehler beendet ist.

int main(int argc, char** argv) {

return 0;}

Page 81: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 81

Zeichenkette in C++

Zeichenketten beginnen und enden mit den Anführungszeichen.

Die Sequenz \n kennzeichnet eine neue Zeile.

int main(int argc, char** argv) { std::cout << "Hello World \n";

}

Page 82: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 82

… auf der Konsole ausgeben

Mit Hilfe des Umleitungsoperators << wird die Zeichenkette auf der Standardausgabe (cout) ausgegeben.

Der Umleitungsoperator besteht aus zwei Kleiner-Zeichen.

int main(int argc, char** argv) { cout << "Hello World \n";

}

Page 83: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 83

Definition des Objekts „cout“

cout ist in der Bibliothek iostream definiert.

Das Objekt beschreibt die Standardausgabe eines C++-Programms.

Fehlermeldung „'cout' was not declared in this scope“: Die Zeile #include <iostream> am Anfang des Programms fehlt. Oder der Namensraum wurde nicht definiert.

int main(int argc, char** argv) { cout << "Hello World \n";

}

Page 84: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 84

Definition des Namensraumes

Am Anfang der Quelldatei. Der Namensraum wird für die gesamte Quelldatei eingebunden.

Das Objekt cout aus dem Namensraum std kann genutzt werden.

using namespace std;

int main(int argc, char** argv) { cout << "Hello World \n";

}

Page 85: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 85

Weitere Möglichkeit

Nur das Element cout wird mit dem Namensraum std durch den Operator :: verbunden.

Das qualifizierte Element kann im Rumpf der Funktion genutzt werden.

int main(int argc, char** argv) { std::cout << "Hello World \n";

}

Page 86: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

Java – Einführung in die Programmierung Seite 86

Standardausgabe in NetBeans

Fenster Output am unteren Rand von NetBeans. Simulation einer Konsole wie zum Beispiel „MS

Eingabeaufforderung“ etc. Ausgabe von Syntaxfehlern bei der Kompilierung des

Programms.

Page 87: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

Java – Einführung in die Programmierung Seite 87

… öffnen

Nach Ausführung des Programms wird das Fenster automatisch geöffnet.

Das Menü Window – Output aktiviert das Fenster. Ein Mausklick auf die Registerkarte Output legt den Fokus auf

das Fenster.

Page 88: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

Java – Einführung in die Programmierung Seite 88

Kompilieren von Projekten

<F11>. Klick mit der rechten Maustaste auf das Projekt. Build. Run – Build Project.

Page 89: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

Java – Einführung in die Programmierung Seite 89

Nochmals Kompilieren

<UMSCHALT>+<F11>. Klick mit der rechten Maustaste auf das Projekt. Clean and

Build. Run – Clean and Build Project.

Page 90: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

Java – Einführung in die Programmierung Seite 90

Output: Registerkarte … (Build, Run)

Arbeitsschritte bei der Kompilierung. Anzeige von Syntaxfehlern.

Page 91: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

Java – Einführung in die Programmierung Seite 91

Kompilieren und ausführen von Projekten

<F6>. Run Project (grüner Pfeil) in der Symbolleiste oder Output. Run – Run Project. Hinweis: Sobald ein Syntaxfehler im Programm auftritt, wird

das Programm gestoppt.

Page 92: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

Java – Einführung in die Programmierung Seite 92

Output: Registerkarte … (Run)

Ein- und Ausgaben zur Laufzeit des Programms. Ausgaben des Programms auf die Konsole. Einlesen von Werten von der Konsole.

Page 93: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

Java – Einführung in die Programmierung Seite 93

Programm vorzeitig beenden

Klick auf das rote Rechteck am linken Rand. Oder: Klick auf die Schließen-Schaltfläche in der Statuszeile

am unteren Rand.

Page 94: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 94

Kompilierung eines Programms

Quellcode ([datei].cpp)

g++ -c main.cpp

Präprozessor

Compiler

Rechter Mausklick auf die Datei.Compile File.

Objektcode ([datei].o) main.o

main.cpp

Page 95: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 95

Präprozessor

Der Präprozessor ersetzt die mit einem Hash-Zeichen gekennzeichneten Zeilen durch den entsprechenden Text.

Ersetzung von bestimmten Codezeilen im Programm vor der Kompilierung.

Page 96: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 96

Compiler

Der Compiler übersetzt den, für einen Menschen lesbaren Programmtext in Maschinencode.

Fehler in der Syntax des Codes führen zu einem Abbruch.

Page 97: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 97

Compiler für C++ unter Linux / Unix

Der Compiler gcc (https://www.gnu.org/software/gcc/) ist auf dem Betriebssystem Linux vorinstalliert.

C++17 wird ab der Version gcc7 unterstützt.

Page 98: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 98

Compiler für C++ unter Windows

Die Compiler Mingw (http://mingw.org/) ist ein Derivate des Gnu-Compilers für Windows. Die Systemvariable PATH muss um den Pfad C:\MinGW\bin; erweitert werden.

Eine weitere Möglichkeit ist cygwin (http://www.sourceware.org/cygwin/).

Page 99: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 99

Update von mingw

Öffnen eines Terminals oder Konsole. Eingabe von mingw-get update in die Konsole. Die neuesten

Pakete werden vom Internet geladen. Eingabe von mingw-get upgrade. Der Compiler wird erneuert.

Page 100: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 100

Ausführbares Programm erstellen

g++ -o application main.o

Linker

Maschinencode ([datei].exe) cppapplication_xx.exe

Objektcode ([datei].o) main.o

Run – Build Project

Run – Run Project

Page 101: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 101

Linker

Bindet alle zu einem Programm gehörenden Objektdatei zu einer ausführbaren Datei zusammen.

Falls die einzubindenden Dateien nicht vorhanden sind, wird eine Fehlermeldung ausgegeben.

Page 102: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 102

makefile

Welche Quelldateien sollen kompiliert werden? Automatische Erzeugung eines ausführbaren Programms. Mitteilung an Programm was es tun soll und wie sie es tun soll. NetBeans generiert automatisch ein makefile.

Page 103: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 103

Formatierung von Code

int main(){ cout << "Hello World \n"; return 0;}

int main() {cout << "Hello World \n";return 0;}

Keines der Programme erzeugt einen Fehler.

Page 104: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 104

Hinweise

Eine Anweisung endet in C++ mit einem Semikolon. Pro Zeile sollte eine Anweisung stehen.

Zusammengehörige Blöcke sollten mit Hilfe von Tabs eingerückt werden.

Namen, Klammern etc. werden durch Leerzeichen getrennt. In einem Namen wie zum Beispiel main darf kein Leerzeichen vorkommen.

In Strings oder Namen darf kein Zeilenumbruch (Taste RETURN; Eingabetaste) genutzt werden.

Page 105: C++ - Einführung in die Programmierung · C++ - Einführung Seite 3 Bücher Bjarne Stroustrup: Programming. Principles and Practice Using C++. Addision Wesley. Ulrich Breymann: Der

C++ - Einführung Seite 105

Style Guides

http://geosoft.no/development/cppstyle.html https://gcc.gnu.org/wiki/CppConventions http://www.stroustrup.com/bs_faq2.html https://users.ece.cmu.edu/~eno/coding/

CppCodingStandard.html https://google.github.io/styleguide/cppguide.html http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#

S-naming