Vorlesung 1 Flashcards
Einleitung, Hello World, Imperative Basics - Sprachkonstrukte
Wie heißt der Erfinder von C++? (wird nicht abgefragt, aber For Fun)
Bjarne Stroustrup
Was sind die wesentlichen Neuerungen in C++?
- Neue Paradigmen
Unterstützung objektorientierter Aspekte
Ab C++11 : funktionale Aspekte - Überladen von Operatoren
- Neue Sicherheitsmechanismen
- Namensräume
- Templates
- Dynamische Speicherverwraltung mit Elementen der Programiersprache
Was sind die wichtigsten Unterschiede zu Java?
- Arrays sind keine Objekte, sondern werden über Zeiger umgesetzt
- (keine Überprüfung von Feldgrenzen)
- Volle Verantwortung für die Speicherverwaltung
- Keine Garbage Collection
- Speicher muss selbst reserviert und freigegeben werden
- Abhilfe schaffen aber sog. Smart Pointer
- Threads sind nicht Bestandteil der Sprache
- aber über Bibliotheken realisiert
- C++ ist PLATFORMSPEZIFISCH
- C++ kennt MEHRFACHVERERBUNG
Was sind die Schritte vom Quellcode bis zur ausführbaren Datei in einem C++-Programm?
- Quellcode (Programmier-Ebene)
- .cpp - Dateien binden notwendige .h- Headerdateien ein, wie z.B. iostream.h, stdlib.h usw.
- Beispiel: main.cpp bindet point.h und geometry.h ein, die jeweils ihre eigenen .h-und .cpp Dateien einbinden.
- Kompilierung (Compiler-Ebene)
- Der Quellcode (.cpp-Dateien) wird in Objektdateien (.o)
kompiliert. - Beispiel: main.cpp -> main.o, point .cpp -> point.o usw.
- Der Quellcode (.cpp-Dateien) wird in Objektdateien (.o)
- Verlinkung (Linker-Ebene)
- Die Objektdateien (.o) und Bibliotheken werden verlinkt, um die endgültige ausführbare Datei (editor.exe) zu erzeugen
Dieser Prozess umfasst die Kompilierung des C++-Codes in maschinenlesbaren Code und anschließend das Verlinken, um ein funktionierendes Programm zu erstellen.
Welcher Operator wird in C++ für den Globalzugriff und Call-Member-Zugriff verwendet?
::
Welche Schlüsselwörter werden in C++ verwendet, um Speicher zu reservieren und freizugeben?
new, delete
Welche Operatoren werden in C++ für Pointer-to-Member verwendet?
.* und ->*
Wie gibt man in C++ eine Nachricht über die Standardausgabe aus?
int zahl = 25;
std::cout «_space;“ich bin “«zahl«” Jahre alt.” «_space;std::endl;
Wie liest man in C++ einen Wert von der Standardeingabe ein?
int zahl;
std::cin»_space; zahl;
Wie gibt man in C++ eine Fehlermeldung über die Fehlerausgabe (cerr) aus?
std::cerr «_space;“Fehler: Ungültige Eingabe!” «_space;std::endl;
int zahl = 11;
Wie kann man die Variable (zahl) im hex ausgeben
std::cout«std::hex«zahl«std::endl;
int zahl = 11;
Wie kann man die Variable (zahl) im oct ausgeben
std::cout«std::oct«zahl«std::endl;
int zahl = 11;
Wie kann man die Variable (zahl) im dec ausgeben
std::cout«std::dec«zahl«std::endl;
(std::dec) - kann man weglassen, wenn die Zahl davor nicht in einem anderen Zahlenformat ausgegeben wurde,
int zahl = 11;
std::cout«std::hex«zahl«std::endl;
std::cout«zahl«std::endl;
// Wie sieht die Ausgabe aus?
b
b
bool b = true;
cout «_space;b «_space;endl;
cout «_space;boolalpha «_space;b «_space;endl;
cout «_space;noboolalpha «_space;b «_space;endl;
// Wie sieht die Ausgabe aus?
1
true
1