C++ für Anfänger - Lernen Sie die Grundlagen der Programmierung
Einführung in die C++-Programmierung
Was ist C++?
C++ ist eine leistungsstarke Programmiersprache, die besonders für Anfänger geeignet ist. Sie wurde in den 1980er Jahren von Bjarne Stroustrup entwickelt und basiert auf der Sprache C. C++ ermöglicht die Erstellung effizienter und flexibler Programme und wird vor allem in der Entwicklung von Betriebssystemen, Treibern, Spieleentwicklung und anderen rechenintensiven Anwendungen eingesetzt.
Warum C++?
C++ bietet Anfängern eine hervorragende Möglichkeit, die Grundlagen der Programmierung zu erlernen. Es ist aufgrund seiner umfangreichen Funktionalitäten, Möglichkeit zur Objektorientierung und breiten Anwendungsmöglichkeiten in der Industrie sehr beliebt.
Vorteile von C++
- Leistung: C++ ist eine der leistungsstärksten Programmiersprachen und ermöglicht die effiziente Ausführung ressourcenintensiver Aufgaben.
- Vielseitigkeit: C++ bietet eine breite Palette von Funktionen und Bibliotheken, die es Entwicklern ermöglichen, nahezu jede Art von Anwendung zu erstellen.
- Objektorientierung: C++ ermöglicht die Verwendung von Klassen und Objekten, was die Entwicklung von wiederverwendbarem Code und die Implementierung komplexer Datenstrukturen erleichtert.
- Kompatibilität: C++ ist mit der C-Sprache kompatibel. Dadurch ist es einfach, C-Bibliotheken oder bereits existierenden C-Code in ein C++-Projekt einzubinden.
Einrichten der Entwicklungsumgebung
Bevor wir loslegen können, müssen wir die erforderlichen Werkzeuge einrichten. Die grundlegende Entwicklungsumgebung für C++ besteht aus einem Texteditor und einem Compiler.
Texteditor
Für die Programmierung in C++ stehen verschiedene Texteditoren zur Verfügung. Einige beliebte Optionen sind Visual Studio Code, Sublime Text und Atom. Wähle den Texteditor aus, mit dem du am besten zurechtkommst und der für deine Bedürfnisse geeignet ist.
Compiler
Ein Compiler übersetzt den geschriebenen C++-Code in ausführbare Dateien. Es gibt verschiedene Compiler für C++ zur Auswahl, aber einer der bekanntesten ist der GCC (GNU Compiler Collection). GCC ist ein Open-Source-Compiler und steht für verschiedene Betriebssysteme zur Verfügung.
Die erste C++-Anwendung
Nun wollen wir unsere erste C++-Anwendung erstellen. Öffne deinen Texteditor und erstelle eine neue Datei mit der Erweiterung ".cpp", zum Beispiel "hallo.cpp".
In der Datei "hallo.cpp" kannst du den folgenden Code eingeben:
cpp
#include <iostream>
int main() {
std::cout << "Hallo, Welt!" << std::endl;
return 0;
}
Dieser Code gibt den Text "Hallo, Welt!" auf der Konsole aus. Wir verwenden die Funktion "std::cout" und den "<<" Operator, um den Text anzuzeigen. Der Ausdruck "std::endl" fügt eine Zeilenumbruchsequenz hinzu.
Das Kompilieren und Ausführen der C++-Anwendung
Um die C++-Anwendung auszuführen, müssen wir sie zuerst kompilieren und dann ausführen.
Öffne das Terminal und navigiere zum Verzeichnis, in dem sich die Datei "hallo.cpp" befindet.
Führe den folgenden Befehl aus, um den Code zu kompilieren:
bash
g++ -o hallo hallo.cpp
Dieser Befehl übersetzt den C++-Code in eine ausführbare Datei namens "hallo".
Um die Anwendung auszuführen, gib den folgenden Befehl ein:
bash
./hallo
Jetzt solltest du den Text "Hallo, Welt!" auf der Konsole sehen.
Herzlichen Glückwunsch! Du hast gerade deine erste C++-Anwendung erfolgreich erstellt und ausgeführt.
Jetzt professionellen C++ Kurs-Dienstleister beauftragen!
Beauftragen Sie jetzt Ihren persönlichen Dienstleister im Bereich C++ Kurs - Eine Anfrage ist einfach, schnell und unkompliziert!
![Suchen](https://yooobs.com/wp-content/plugins/owl-htp/assets/img/yooobs-search.png)
Grundlegende Syntax von C++
Variablendeklaration und Wertzuweisung
In C++ werden Variablen verwendet, um Daten zu speichern und zu verarbeiten. Um eine Variable zu deklarieren, musst du den Datentyp angeben, gefolgt von einem Namen für die Variable. Du kannst auch einen optionalen anfänglichen Wert zuweisen.
cpp
int zahl = 42;
float pi = 3.14;
char buchstabe = 'a';
bool wahrheitswert = true;
Kommentare
Kommentare ermöglichen es dir, Erklärungen und Informationen direkt im Code zu hinterlassen. In C++ gibt es zwei Arten von Kommentaren: einzeilige Kommentare und mehrzeilige Kommentare.
Einzeilige Kommentare beginnen mit `//` und erstrecken sich bis zum Ende der Zeile:
cpp
// Dies ist ein einzeiliger Kommentar
Mehrzeilige Kommentare bestehen aus `/*` am Anfang und `*/` am Ende. Alles dazwischen wird als Kommentar behandelt:
cpp
/*
Dies ist ein mehrzeiliger Kommentar.
Er kann über mehrere Zeilen hinweg gehen.
*/
Operatoren
In C++ gibt es verschiedene Arten von Operatoren, die zum Durchführen von Berechnungen und Vergleichen verwendet werden. Hier sind einige grundlegende Operatoren:
- Arithmetische Operatoren: `+`, `-`, `*`, `/`, `%`
- Zuweisungsoperatoren: `=`, `+=`, `-=`, `*=`, `/=`, `%=`
- Vergleichsoperatoren: `==`, `!=`, `>`, `<`, `>=`, `<=`
- Logische Operatoren: `&&`, `||`, `!`
Bedingte Anweisungen
Bedingte Anweisungen ermöglichen es dir, Code abhängig von einer bestimmten Bedingung auszuführen. In C++ wird dies mit der `if`-Anweisung gemacht:
cpp
if (bedingung) {
// Code wird ausgeführt, wenn die Bedingung wahr ist
} else {
// Code wird ausgeführt, wenn die Bedingung falsch ist
}
Du kannst auch zusätzliche Bedingungen mit `else if` hinzufügen:
cpp
if (bedingung1) {
// Code wird ausgeführt, wenn Bedingung 1 wahr ist
} else if (bedingung2) {
// Code wird ausgeführt, wenn Bedingung 1 falsch ist und Bedingung 2 wahr ist
} else {
// Code wird ausgeführt, wenn alle vorherigen Bedingungen falsch sind
}
Schleifen
Schleifen ermöglichen es dir, eine bestimmte Anweisung oder einen bestimmten Block von Anweisungen wiederholt auszuführen. In C++ gibt es verschiedene Arten von Schleifen, wie die `for`-Schleife, die `while`-Schleife und die `do-while`-Schleife.
cpp
for (initialisierung; bedingung; inkrement) {
// Code wird wiederholt ausgeführt, solange die Bedingung wahr ist
}
cpp
while (bedingung) {
// Code wird wiederholt ausgeführt, solange die Bedingung wahr ist
}
cpp
do {
// Code wird wiederholt ausgeführt, solange die Bedingung wahr ist
} while (bedingung);
Funktionen
Funktionen ermöglichen es dir, Code in wiederverwendbare Einheiten zu organisieren. Eine Funktion besteht aus einem Funktionskopf, der den Funktionsnamen und die Parameter enthält, und einem Funktionsrumpf, der die eigentlichen Anweisungen enthält.
cpp
rückgabetyp functionName(parameter1, parameter2, ...) {
// Anweisungen
return wert;
}
Ein Beispiel für eine einfache Funktion:
cpp
int addiere(int a, int b) {
int summe = a + b;
return summe;
}
Schlussfolgerung
In diesem Teil des Tutorials haben wir die grundlegende Syntax von C++ behandelt. Wir haben gelernt, wie Variablen deklariert und Werte zugewiesen werden, wie Kommentare verwendet werden, welche Operatoren zur Verfügung stehen, wie bedingte Anweisungen und Schleifen funktionieren und wie Funktionen definiert werden. Dieses Wissen legt die Grundlage für das Verständnis weiterer Konzepte in der C++-Programmierung.
Datentypen in C++
Was sind Datentypen?
Datentypen sind in der Programmierung von entscheidender Bedeutung, da sie festlegen, welche Art von Daten eine Variable speichern kann. In C++ gibt es eine Vielzahl von Datentypen, die verwendet werden können, je nachdem, um welche Art von Daten es sich handelt. Hier sind einige der häufig verwendeten Datentypen in C++:
Ganzzahlige Datentypen
- `int`: Der `int`-Datentyp wird verwendet, um ganze Zahlen zu speichern. Er kann sowohl positive als auch negative Werte enthalten.
- `short`: Der `short`-Datentyp wird verwendet, um kurze Ganzzahlen zu speichern. Er benötigt weniger Speicherplatz als `int`, kann jedoch möglicherweise nicht so große Zahlen speichern.
- `long`: Der `long`-Datentyp wird verwendet, um lange Ganzzahlen zu speichern. Er kann größere Zahlen speichern als `int`.
Gleitkommazahlen
- `float`: Der `float`-Datentyp wird verwendet, um Gleitkommazahlen mit einfacher Genauigkeit zu speichern. Er kann positive, negative und dezimale Werte enthalten.
- `double`: Der `double`-Datentyp wird verwendet, um Gleitkommazahlen mit doppelter Genauigkeit zu speichern. Er kann größere Zahlen speichern und bietet eine höhere Genauigkeit als `float`.
Zeichen
- `char`: Der `char`-Datentyp wird verwendet, um einzelne Zeichen zu speichern. Ein Zeichen wird in C++ in einfachen Anführungszeichen `' '` eingeschlossen.
Boolesche Werte
- `bool`: Der `bool`-Datentyp wird verwendet, um Wahrheitswerte zu speichern. Er kann entweder den Wert `true` (wahr) oder `false` (falsch) annehmen.
Zeichenketten
- `string`: Der `string`-Datentyp wird verwendet, um Zeichenketten zu speichern, die aus einer Reihe von Zeichen bestehen. Zeichenketten werden in doppelten Anführungszeichen `" "` eingeschlossen.
Benutzerdefinierte Datentypen
In C++ ist es auch möglich, benutzerdefinierte Datentypen zu erstellen, die aus einer Kombination von vorhandenen Datentypen bestehen. Dies ermöglicht die Organisation von verwandten Daten in einer einzigen Einheit und erleichtert so die Codeverwaltung und -wartung.
Schlussfolgerung
In diesem Abschnitt haben wir einen Überblick über einige der grundlegenden Datentypen in C++ gegeben. Du hast gelernt, welche Art von Daten mit den einzelnen Datentypen gespeichert werden können, wie sie deklariert und verwendet werden. Die Kenntnis der verschiedenen Datentypen ist von entscheidender Bedeutung, da sie dir ermöglicht, effizienten und korrekten Code zu schreiben, der auf die spezifischen Anforderungen deines Programms zugeschnitten ist.
![Datentypen in C++](https://yooobs.com/wp-content/plugins/owl-htp/assets/../upload/1f/1f/1f1f79d1_datentypen_in_c_m.webp)
Kontrollstrukturen in C++
Was sind Kontrollstrukturen?
Kontrollstrukturen erlauben es dir als Programmierer, den Ablauf eines Programms zu steuern und Entscheidungen zu treffen, welche Anweisungen ausgeführt werden sollen. In C++ gibt es verschiedene Arten von Kontrollstrukturen, darunter bedingte Anweisungen (z.B. `if`-Anweisungen) und Schleifen (z.B. `for`-Schleifen).
Bedingte Anweisungen
Bedingte Anweisungen ermöglichen es dir, Code abhängig von einer bestimmten Bedingung auszuführen. Die am häufigsten verwendete Form der bedingten Anweisung in C++ ist die `if`-Anweisung.
cpp
if (bedingung) {
// Code wird ausgeführt, wenn die Bedingung wahr ist
} else {
// Code wird ausgeführt, wenn die Bedingung falsch ist
}
Du kannst auch zusätzliche Bedingungen mit `else if` hinzufügen:
cpp
if (bedingung1) {
// Code wird ausgeführt, wenn Bedingung 1 wahr ist
} else if (bedingung2) {
// Code wird ausgeführt, wenn Bedingung 1 falsch ist und Bedingung 2 wahr ist
} else {
// Code wird ausgeführt, wenn alle vorherigen Bedingungen falsch sind
}
Schleifen
Schleifen ermöglichen es dir, eine bestimmte Anweisung oder einen bestimmten Block von Anweisungen wiederholt auszuführen. In C++ gibt es verschiedene Arten von Schleifen, wie die `for`-Schleife, die `while`-Schleife und die `do-while`-Schleife.
Die `for`-Schleife wird verwendet, wenn die Anzahl der Durchläufe im Voraus bekannt ist:
cpp
for (initialisierung; bedingung; inkrement) {
// Code wird wiederholt ausgeführt, solange die Bedingung wahr ist
}
Die `while`-Schleife wird verwendet, wenn du eine Anweisung wiederholt ausführen möchtest, solange eine bestimmte Bedingung wahr ist:
cpp
while (bedingung) {
// Code wird wiederholt ausgeführt, solange die Bedingung wahr ist
}
Die `do-while`-Schleife wird verwendet, wenn du sicherstellen möchtest, dass der Code mindestens einmal ausgeführt wird, bevor die Bedingung überprüft wird:
cpp
do {
// Code wird wiederholt ausgeführt, solange die Bedingung wahr ist
} while (bedingung);
Fallunterscheidung mit der Switch-Anweisung
Die Switch-Anweisung ermöglicht es dir, einen Codeblock basierend auf dem Wert einer bestimmten Variablen auszuwählen. Die Switch-Anweisung ist nützlich, wenn du eine große Anzahl von Bedingungen überprüfen möchtest, da sie eine übersichtliche Alternative zu verschachtelten `if`-Anweisungen bietet.
cpp
switch (ausdruck) {
case wert1:
// Code wird ausgeführt, wenn der Ausdruck den Wert1 hat
break;
case wert2:
// Code wird ausgeführt, wenn der Ausdruck den Wert2 hat
break;
default:
// Code wird ausgeführt, wenn keiner der vorherigen Fälle zutrifft
break;
}
Schlussfolgerung
In diesem Abschnitt haben wir verschiedene Kontrollstrukturen in C++ behandelt, darunter bedingte Anweisungen (`if`-Anweisungen), Schleifen (`for`, `while` und `do-while`) und die Switch-Anweisung. Diese Kontrollstrukturen ermöglichen es dir, den Ablauf deines Programms zu steuern und die Ausführung von Code basierend auf bestimmten Bedingungen zu steuern. Sie sind grundlegende Konzepte in der C++-Programmierung und ein wesentlicher Bestandteil bei der Entwicklung von robusten und flexiblen Programmen.
Switch-Anweisung in C++
Die Switch-Anweisung ist eine Kontrollstruktur in C++, die verwendet wird, um verschiedene Fälle basierend auf dem Wert einer Variablen auszuwerten. Sie ermöglicht die Fallunterscheidung und bietet eine alternative Möglichkeit, um komplexe `if-else`-Anweisungen zu vermeiden.
Die Syntax der Switch-Anweisung
Die Switch-Anweisung besteht aus einem Ausdruck, der ausgewertet wird, und einer Menge von Fällen, die basierend auf dem Wert des Ausdrucks überprüft werden.
cpp
switch (ausdruck) {
case wert1:
// Code, der ausgeführt wird, wenn der Ausdruck den Wert1 hat
break;
case wert2:
// Code, der ausgeführt wird, wenn der Ausdruck den Wert2 hat
break;
default:
// Code, der ausgeführt wird, wenn keiner der vorherigen Fälle zutrifft
break;
}
Der Ausdruck
Der Ausdruck in der Switch-Anweisung ist in der Regel eine Variable oder ein Ausdruck, dessen Wert mit den verschiedenen Fällen verglichen wird.
Die Fälle
Jeder Fall in der Switch-Anweisung enthält einen bestimmten Wert oder eine Kombination von Werten, die mit dem Ausdruck verglichen werden. Wenn der Wert des Ausdrucks mit einem der Fälle übereinstimmt, wird der entsprechende Codeblock ausgeführt. Jeder Fall wird mit dem Schlüsselwort `case` eingeleitet.
Der Default-Fall
Der Default-Fall in der Switch-Anweisung wird ausgeführt, wenn kein Fall mit dem Wert des Ausdrucks übereinstimmt. Er wird mit dem Schlüsselwort `default` eingeleitet. Der Default-Fall ist optional, aber es ist eine gute Praxis, ihn zu definieren, um sicherzustellen, dass alle möglichen Fälle abgedeckt sind.
Break-Anweisungen
Nach jedem Fall in der Switch-Anweisung muss eine `break`-Anweisung geschrieben werden. Der Zweck der `break`-Anweisung besteht darin, den Code der Switch-Anweisung zu verlassen und mit dem nächsten Code nach der Switch-Anweisung fortzufahren. Wenn die `break`-Anweisung fehlt, wird der Code nach dem passenden Fall weiterhin ausgeführt. Die meisten Fälle haben eine `break`-Anweisung am Ende, jedoch kann es Situationen geben, in denen eine `break`-Anweisung nicht erforderlich oder unerwünscht ist.
Verwendung der Switch-Anweisung in C++
Die Switch-Anweisung ist besonders hilfreich, wenn es viele verschiedene Bedingungen gibt, die basierend auf dem Wert einer Variablen verglichen werden müssen. Anstatt lange `if-else`-Anweisungen zu schreiben, die schwer zu lesen und zu pflegen sind, bietet die Switch-Anweisung eine kompakte und elegante Lösung.
cpp
int tag = 3;
switch (tag) {
case 1:
cout << "Montag";
break;
case 2:
cout << "Dienstag";
break;
case 3:
cout << "Mittwoch";
break;
default:
cout << "Ungültiger Tag";
break;
}
In diesem Beispiel wird der Wert der Variable `tag` mit den verschiedenen Fällen verglichen und der entsprechende Tag auf der Konsole ausgegeben. Wenn der Wert von `tag` beispielsweise 3 ist, gibt das Programm "Mittwoch" aus.
Schlussfolgerung
Die Switch-Anweisung ist eine nützliche Kontrollstruktur in C++, die es dir ermöglicht, verschiedene Fälle basierend auf dem Wert einer bestimmten Variablen auszuwerten. Sie bietet eine alternative Möglichkeit, komplexe `if-else`-Anweisungen zu strukturieren. Durch die ordnungsgemäße Verwendung der Switch-Anweisung kannst du deinen Code einfacher lesen, warten und erweitern.
![Switch-Anweisung in C++](https://yooobs.com/wp-content/plugins/owl-htp/assets/../upload/6c/cc/6ccc17a1_switch_anweisung_in_c_m.webp)
Jetzt professionellen C++ Kurs-Dienstleister beauftragen!
Beauftragen Sie jetzt Ihren persönlichen Dienstleister im Bereich C++ Kurs - Eine Anfrage ist einfach, schnell und unkompliziert!
![Suchen](https://yooobs.com/wp-content/plugins/owl-htp/assets/img/yooobs-search.png)
Häufige Fragen
C++ ist eine Programmiersprache, die auf C basiert und erweiterte Funktionalitäten bietet.
Die grundlegenden Syntaxregeln von C++ umfassen die Verwendung von Semikolons am Ende eines Statements, das Einbinden von Header-Dateien und die Definition von Funktionen.
C++ unterstützt verschiedene Datentypen wie Ganzzahlen, Fließkommazahlen, Zeichen, Boolesche Werte und Zeichenketten.
Variablen in C++ können durch die Angabe des Datentyps und des Variablennamens deklariert werden, z.B. int num;
C++ verwendet Kontrollstrukturen wie if-else-Anweisungen, Schleifen wie for und while und die switch-Anweisung.
Die switch-Anweisung in C++ ermöglicht das Auswählen eines von mehreren Codeblöcken basierend auf dem Wert einer Ausdrucksvariable.
Die switch-Anweisung verwendet einen Ausdruck und vergleicht dessen Wert mit den Werten der case-Klauseln. Der entsprechende Codeblock, dessen Wert übereinstimmt, wird ausgeführt.
Ja, die switch-Anweisung kann verschachtelt werden, indem eine switch-Anweisung innerhalb des Codeblocks einer anderen switch-Anweisung verwendet wird.
Wenn kein case-Wert mit dem Wert des Ausdrucks übereinstimmt, wird der Codeblock, der mit der default-Klausel verknüpft ist, ausgeführt.
C++ bietet eine bessere Kontrolle über die Hardware, eine höhere Leistung und eine breite Palette an Funktionen, was es zu einer leistungsstarken und flexiblen Programmiersprache für Anfänger macht.
Jetzt professionellen C++ Kurs-Dienstleister beauftragen!
Beauftragen Sie jetzt Ihren persönlichen Dienstleister im Bereich C++ Kurs - Eine Anfrage ist einfach, schnell und unkompliziert!
![Suchen](https://yooobs.com/wp-content/plugins/owl-htp/assets/img/yooobs-search.png)
Empfohlene Artikel
-
Sommer Grillparty - Geselliges Fest mit leckerem Grillgut
Erleben Sie eine gesellige Sommer Grillparty mit leckerem Grillgut und guten Gesprächen. Genießen Sie bei unserem gemeinsamen Grillen eine entspannte Atmosphäre und nehmen Sie am Tischtennis-Turnier teil, um Spaß und Spannung zu erleben.
-
Lidstrich Techniken: Perfekte Looks für jeden Augentyp
Entdecke die besten Lidstrich-Techniken für einen perfekten Look. Ob klassisch oder individuell an deine Augenform angepasst - hier findest du alle Tipps und Tricks für einen langanhaltenden und präzisen Lidstrich. Perfekt für Anfänger:innen und Makeup-Profis.
-
Orchideenstrauß - Arten, Pflege und Arrangieren für einzigartige Blumenpracht
Erfahren Sie hier alles über die verschiedenen Arten von Orchideensträußen und erhalten Sie nützliche Tipps zur Pflege und dem Arrangieren. Machen Sie Ihre Orchideensträuße zu einem Blickfang in Ihrem Zuhause oder als Geschenk.
-
Tipps für Passfotos - Die perfekte Aufnahme in 6 Schritten
Erfahren Sie, wie Sie mithilfe unserer Tipps ein gelungenes Passfoto erstellen. Von der Auswahl der richtigen Kleidung und Schmuckstücke über das passende Make-up bis hin zur idealen Körperhaltung und Blickrichtung - wir zeigen Ihnen alles, was Sie wissen müssen, um ein perfektes Passfoto zu bekommen.
-
Kletterunfälle Vermeidung: Tipps und Tricks für sicheres Klettern
Erfahre in unserem Ratgeber, wie du Kletterunfälle vermeiden kannst und sicher am Fels unterwegs bist. Lerne wichtige Aspekte wie Risikobewusstsein, Partnercheck, Routenbeurteilung, Klettersicherheit und Materialversagen kennen.
Neuste Artikel
-
Bewerbung über Social Media: Tipps und Vorteile
Nutze Social Media, um dich optimal zu bewerben. In diesem Ratgeber erfährst du, wie du ein professionelles Profil erstellst, aktiv auf dich aufmerksam machst und passiv gefunden wirst.
-
Stärken-Schwächen-Analyse: So entdecken Sie Ihre Potenziale
Erfahren Sie, wie Sie Ihre Stärken und Schwächen einschätzen können, um beruflich und persönlich erfolgreich zu sein. Nutzen Sie diese Erkenntnisse, um sich im Vorstellungsgespräch zu präsentieren und an Ihren Schwächen zu arbeiten.
-
Telefoninterviews: Tipps, Dos & Don'ts, Vorbereitung
In diesem Ratgeber erfährst du, wie du dich optimal auf ein Telefoninterview vorbereitest und welche Dos and Don'ts du beachten solltest. Finde hier hilfreiche Tipps für ein erfolgreiches Telefoninterview.
-
Bewerbungstipps für Trainee-Programme: So überzeugst du Personaler
Erfahre, wie du mit unseren Bewerbungstipps eine erfolgreiche Trainee-Bewerbung erstellst. Von der richtigen Struktur des Anschreibens bis hin zur Vermeidung häufiger Fehler.
-
Tipps für Passfotos - Die perfekte Aufnahme in 6 Schritten
Erfahren Sie, wie Sie mithilfe unserer Tipps ein gelungenes Passfoto erstellen. Von der Auswahl der richtigen Kleidung und Schmuckstücke über das passende Make-up bis hin zur idealen Körperhaltung und Blickrichtung - wir zeigen Ihnen alles, was Sie wissen müssen, um ein perfektes Passfoto zu bekommen.