Vorlesung 1 Flashcards

Einleitung, Hello World, Imperative Basics - Sprachkonstrukte

1
Q

Wie heißt der Erfinder von C++? (wird nicht abgefragt, aber For Fun)

A

Bjarne Stroustrup

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was sind die wesentlichen Neuerungen in C++?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was sind die wichtigsten Unterschiede zu Java?

A
  1. Arrays sind keine Objekte, sondern werden über Zeiger umgesetzt
    • (keine Überprüfung von Feldgrenzen)
  2. Volle Verantwortung für die Speicherverwaltung
    • Keine Garbage Collection
    • Speicher muss selbst reserviert und freigegeben werden
    • Abhilfe schaffen aber sog. Smart Pointer
  3. Threads sind nicht Bestandteil der Sprache
    • aber über Bibliotheken realisiert
  4. C++ ist PLATFORMSPEZIFISCH
  5. C++ kennt MEHRFACHVERERBUNG
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Was sind die Schritte vom Quellcode bis zur ausführbaren Datei in einem C++-Programm?

A
  1. 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.
  2. Kompilierung (Compiler-Ebene)
    • Der Quellcode (.cpp-Dateien) wird in Objektdateien (.o)
      kompiliert.
    • Beispiel: main.cpp -> main.o, point .cpp -> point.o usw.
  3. 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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Welcher Operator wird in C++ für den Globalzugriff und Call-Member-Zugriff verwendet?

A

::

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Welche Schlüsselwörter werden in C++ verwendet, um Speicher zu reservieren und freizugeben?

A

new, delete

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Welche Operatoren werden in C++ für Pointer-to-Member verwendet?

A

.* und ->*

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Wie gibt man in C++ eine Nachricht über die Standardausgabe aus?

A

int zahl = 25;
std::cout &laquo_space;“ich bin “«zahl«” Jahre alt.” &laquo_space;std::endl;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Wie liest man in C++ einen Wert von der Standardeingabe ein?

A

int zahl;
std::cin&raquo_space; zahl;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Wie gibt man in C++ eine Fehlermeldung über die Fehlerausgabe (cerr) aus?

A

std::cerr &laquo_space;“Fehler: Ungültige Eingabe!” &laquo_space;std::endl;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

int zahl = 11;

Wie kann man die Variable (zahl) im hex ausgeben

A

std::cout«std::hex«zahl«std::endl;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

int zahl = 11;

Wie kann man die Variable (zahl) im oct ausgeben

A

std::cout«std::oct«zahl«std::endl;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

int zahl = 11;

Wie kann man die Variable (zahl) im dec ausgeben

A

std::cout«std::dec«zahl«std::endl;

(std::dec) - kann man weglassen, wenn die Zahl davor nicht in einem anderen Zahlenformat ausgegeben wurde,

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

int zahl = 11;
std::cout«std::hex«zahl«std::endl;
std::cout«zahl«std::endl;

// Wie sieht die Ausgabe aus?

A

b
b

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

bool b = true;
cout &laquo_space;b &laquo_space;endl;
cout &laquo_space;boolalpha &laquo_space;b &laquo_space;endl;
cout &laquo_space;noboolalpha &laquo_space;b &laquo_space;endl;

// Wie sieht die Ausgabe aus?

A

1
true
1

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

bool b = true;
cout &laquo_space;b &laquo_space;endl;
cout &laquo_space;boolalpha &laquo_space;b &laquo_space;endl;
cout &laquo_space;b &laquo_space;endl;

// Wie sieht die Ausgabe aus?

A

1
true
true

17
Q

bool b = false;
cout &laquo_space;b &laquo_space;endl;

// Wie sieht die Ausgabe aus?

A

0

18
Q

int zahl = 11;
printf(“%d\n”, zahl);
printf(“%x\n”, zahl);

// Wie sieht die Ausgabe des folgenden Codes aus?

A

11
b

19
Q

int zahl = 255;
printf(“%d\n”, zahl);
printf(“%x\n”, zahl);
printf(“%o\n”, zahl);

// Wie sieht die Ausgabe des folgenden Codes aus, wenn der Wert in verschiedenen Formaten ausgegeben wird?

A

255
ff
377

20
Q

const char* name = “C++”;
printf(“Das ist %s Programmierung!\n”, name);

// Wie sieht die Ausgabe des folgenden Codes aus?

A

Das ist C++ Programmierung!

21
Q

int a = 10;
int* p = &a;
std::cout &laquo_space;*p &laquo_space;std::endl;

// Ausgabe?

A

10

22
Q

int a = 5;
int b = 10;
int* p = &a;
p = &b;
std::cout &laquo_space;*p &laquo_space;std::endl;

// Ausgabe?

A

10

23
Q

int a = 42;
int* p = &a;
*p = 15;
std::cout &laquo_space;a &laquo_space;std::endl;

// Ausgabe

A

15

24
Q

int a = 7;
int b = 14;
int* p1 = &a;
int* p2 = &b;
*p1 = *p2;
std::cout &laquo_space;a &laquo_space;std::endl;

// Ausgabe?

A

14

25
Q

int a = 20;
int* p = &a;
int** pp = &p;
std::cout &laquo_space;**pp &laquo_space;std::endl;

// Ausgabe?

A

20