c++ - einführung in die programmierung · c++ - einführung seite 3 bücher bjarne stroustrup:...
Post on 04-Jun-2018
218 Views
Preview:
TRANSCRIPT
Anja Aue | 12.12.2017
C++ - Einführung in die Programmiersprache
C++ - Einführung Seite 2
Handbücher des IT Services
C++ für C-Programmierer C und C++ für Java-Programmierer
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.
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.
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
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
C++ - Einführung Seite 7
C++
ISO genormte Programmiersprache. Objektorientierte und generische Programmierung. Komplexe, flexible Programmiersprache. Hardware-nahe Programmierung.
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.
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.
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.
C++ - Einführung Seite 11
Programmierkonzepte
Prozedurale und modulare Programmierung. Anlehnung an die Programmiersprache C.
Objektorientierte Programmierung. Generische Programmierung.
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.
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.
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.
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.
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/)
C++ - Einführung Seite 17
Online-Editoren zum Testen von Code
http://coliru.stacked-crooked.com/ https://godbolt.org/
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/.
C++ - Einführung Seite 19
Installationshilfe im Web
https://wiki.fbihome.de/Netbeans https://netbeans.org/kb/trails/cnd.html
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.
C++ - Einführung Seite 21
Startseite
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.
C++ - Einführung Seite 23
IDE anpassen
Tools – Options.
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++.
C++ - Einführung Seite 25
Einstellungen für den Editor
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.
C++ - Einführung Seite 27
Einstellungen C / C++
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.
C++ - Einführung Seite 29
Projekt anlegen
File – New Project.
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.
C++ - Einführung Seite 31
2. Schritt: Name und Speicherort des Projekts
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.
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.
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.
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.
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?
C++ - Einführung Seite 37
Projekt schließen
File – Close Project (ProjectName).
C++ - Einführung Seite 38
Benutzeroberfläche
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.
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.
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.
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.
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.
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.
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“.
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
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.
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.
C++ - Einführung Seite 49
Schließen von Projekten
File – Close Project. Rechtsklick auf das
Wurzelverzeichnis. Menüelement Close.
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.
C++ - Einführung Seite 51
Beispiel
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?
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.
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.
C++ - Einführung Seite 55
Code-Fenster in NetBeans
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.
C++ - Einführung Seite 57
Schriftart und -farbe im Codefenster
Tools – Options. Fonts & Colors.
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;}
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++.
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.
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.
C++ - Einführung Seite 62
Aufbau eines C++-Programms
Präprozessor-Anweisung
int main ()
}
Anweisung;
Anweisung;
return 0;
using namespace std;
{
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>
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>
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.
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;
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;
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.
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
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) {
}
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
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.
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()
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()
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;}
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;}
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;}
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;}
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
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;}
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";
}
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";
}
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";
}
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";
}
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";
}
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.
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.
Java – Einführung in die Programmierung Seite 88
Kompilieren von Projekten
<F11>. Klick mit der rechten Maustaste auf das Projekt. Build. Run – Build Project.
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.
Java – Einführung in die Programmierung Seite 90
Output: Registerkarte … (Build, Run)
Arbeitsschritte bei der Kompilierung. Anzeige von Syntaxfehlern.
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.
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.
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.
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
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.
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.
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.
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/).
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.
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
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.
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.
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.
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.
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
top related