C++
VeröffentlichtRevision 2

C++ Schritt für Schritt

C++ lernen mit 60 Lektionen, nachvollziehbaren Beispielen und drei Übungsprojekten. Vom ersten Programm bis zu Zeigern und modernem C++.

C++ Schritt für Schritt#

Du brauchst keine Programmierkenntnisse. Der Kurs beginnt mit einer einfachen Textausgabe und führt über Eingaben, Schleifen und Funktionen zu eigenen Datentypen und Speicherverwaltung. Zu jedem Kapitel gehören Beispiele und Übungen mit aufklappbaren Lösungen.

Neu dabei? Beginne mit Was ist Programmieren?. Wenn Editor und Compiler bereits eingerichtet sind, öffne Dein erstes Programm.

Deinen Einstieg finden#

Ich möchte …

Hier geht es weiter

C++ von Anfang an lernen

EinführungWerkzeugeErstes Programm

Ein- und Ausgaben verstehen

cout, cin, ganze Zeilen

Mit Werten rechnen

Variablen, Datentypen, Operatoren

Referenzen und Zeiger verstehen

SpeicherReferenzenZeiger

Eine Fehlermeldung lösen

Compiler- und Linkerfehler, Debugging

Etwas Eigenes bauen

Taschenrechner, Notizen, Dateistatistik

Ein Zeichen oder Wort nachschlagen

Escape-Sequenzen, Manipulatoren, Glossar

Der Lernweg in vier Etappen#

Etappe

Kapitel

Was du danach ausprobieren kannst

1 · Ein Programm zum Laufen bringen

1–4

Eingaben lesen, rechnen und wiederholen

2 · Programme aufteilen und Daten verwalten

5–8

Funktionen schreiben, Werte sammeln und Objektlebensdauer erklären

3 · Sprache und Werkzeuge vertiefen

9–10

Bibliotheksfunktionen einsetzen, Dateien bearbeiten und Fehler eingrenzen

4 · Selbst anwenden

11–12

Drei Projekte bearbeiten und gezielt nachschlagen

Gehe erst weiter, wenn du das Beispiel verändern und die neue Ausgabe vorhersagen kannst. Einen Begriff wieder nachzuschlagen gehört dazu. Die Kapitel müssen nicht an einem Stück bearbeitet werden.

Alle 60 Lektionen#

Die Kapitel stehen in Lernreihenfolge. Klappe ein Kapitel auf, um die einzelnen Lektionen und eine Aufgabe zur Selbstprüfung zu sehen.

01 · Einführung · 6 Lektionen

Du speicherst Quelltext, übersetzt ihn und kannst erklären, wie main und die Ausgabe zusammenarbeiten.

  1. Was ist Programmieren?

  2. Editor, Compiler und Terminal einrichten

  3. Dein erstes Programm – Zeichen für Zeichen

  4. Kommentare und lesbarer Quelltext

  5. int main(), void und der Rückgabewert

  6. Vom Quelltext zum Programm: Build und Fehlermeldungen

Kapitel geschafft? Ändere eine Ausgabe, speichere, baue neu und erkläre den Unterschied zwischen Quelltext und Programmdatei.

02 · Ein- und Ausgabe · 5 Lektionen

Du liest Zahlen und ganze Zeilen ein, prüfst fehlerhafte Eingaben und formatierst Ausgaben.

  1. Text und Zahlen mit std::cout ausgeben

  2. Escape-Sequenzen, Sonderzeichen und Raw Strings

  3. Eingaben mit std::cin lesen und prüfen

  4. Ganze Zeilen und Eingaben mit Leerzeichen

  5. Manipulatoren: Zahlen und Tabellen formatieren

Kapitel geschafft? Lies einen Namen mit Leerzeichen und eine Zahl ein. Teste auch Buchstaben an der Stelle der Zahl.

03 · Werte und Ausdrücke · 6 Lektionen

Du wählst Datentypen, initialisierst Werte und unterscheidest Berechnung, Zuweisung und Vergleich.

  1. Variablen, Initialisierung und Zuweisung

  2. Datentypen, Wertebereiche und Genauigkeit

  3. const, constexpr und auto

  4. Rechnen, vergleichen und logische Ausdrücke

  5. Typumwandlungen und static_cast

  6. Texte mit std::string verarbeiten

Kapitel geschafft? Sage nach jeder Zuweisung die Werte zweier unabhängiger Variablen voraus.

04 · Entscheidungen und Schleifen · 4 Lektionen

Du entscheidest mit if oder switch und schreibst Schleifen mit einer klaren Abbruchbedingung.

  1. Entscheidungen mit if und else

  2. Mehrere feste Fälle mit switch

  3. Wiederholungen mit while, do-while und for

  4. Eingaben wiederholen, ohne hängen zu bleiben

Kapitel geschafft? Schreibe eine Schleife, die mit einem Abbruchwort endet und bei ungültiger Eingabe nicht hängen bleibt.

05 · Funktionen und Programmaufbau · 5 Lektionen

Du zerlegst Aufgaben in Funktionen und verstehst Parameter, Rückgabewerte und Header.

  1. Eigene Funktionen definieren und aufrufen

  2. Parameter: Wertübergabe, Referenz und Überladung

  3. Gültigkeitsbereiche und Namensräume

  4. Header, #include und mehrere Quelldateien

  5. Rekursion und einfache Abbruchfälle

Kapitel geschafft? Schreibe eine reine Berechnung als Funktion und verwende ihr Ergebnis an zwei Aufrufstellen.

06 · Daten sammeln und verarbeiten · 5 Lektionen

Du speicherst mehrere Werte und wählst passende Container und Algorithmen.

  1. Veränderbare Listen mit std::vector

  2. Feste Arrays, C-Arrays und std::span

  3. Schlüssel, Werte und Mengen: map und set

  4. Iteratoren und gültige Bereiche

  5. Standardalgorithmen statt selbst gebauter Schleifen

Kapitel geschafft? Speichere Messwerte in einem vector. Behandle auch eine leere Sammlung, bevor du einen Mittelwert berechnest.

07 · Referenzen, Zeiger und Speicher · 6 Lektionen

Du unterscheidest Kopie, Referenz und Zeiger und kannst die Lebensdauer eines Zielobjekts verfolgen.

  1. Speicher, Adressen und Lebensdauer

  2. Referenzen: ein zweiter Name für ein Objekt

  3. Zeiger, nullptr und Dereferenzieren

  4. Zeigerfallen: Grenzen, C-Strings und dangling

  5. Dynamischer Speicher, new/delete und RAII

  6. unique_ptr, shared_ptr und weak_ptr

Kapitel geschafft? Zeichne für ein Beispiel das Ziel eines Zeigers nach jeder Zeile und markiere, wann das Zielobjekt zerstört wird.

08 · Eigene Datentypen und Klassen · 5 Lektionen

Du modellierst zusammengehörige Daten und erhältst gültige Zustände über Konstruktoren.

  1. Zusammengehörige Daten mit struct bündeln

  2. Benannte Zustände mit enum class

  3. Klassen, Kapselung und gültige Zustände

  4. Konstruktoren, Destruktoren und Rule of Zero

  5. Vererbung, virtuelle Funktionen und Komposition

Kapitel geschafft? Erkläre an einem eigenen Typ, welche Werte erlaubt sind und welche Funktion seinen Zustand verändern darf.

09 · Modernes C++ · 6 Lektionen

Du liest Templates und Lambdas und ordnest move, optional und C++20-Erweiterungen ein.

  1. Templates, Typvorlagen und Concepts

  2. Lambdas und bewusstes Einfangen von Werten

  3. Verschieben, std::move und Wertkategorien

  4. Fehlende Werte und Alternativen: optional und variant

  5. Ranges und Views ab C++20

  6. Imports und C++20-Module

Kapitel geschafft? Ersetze eine kleine Schleife durch einen Algorithmus mit Lambda und erkläre, welche Werte das Lambda benötigt.

10 · Dateien, Fehler und Werkzeuge · 6 Lektionen

Du verarbeitest Dateien, suchst Fehler mit Werkzeugen und prüfst Grenzfälle.

  1. Textdateien lesen und schreiben

  2. Fehler mit throw, try und catch behandeln

  3. Debugger, Warnungen und Sanitizer

  4. Tests, assert und Grenzfälle

  5. Projekte mit CMake bauen

  6. Nebenläufigkeit, Threads und Datenrennen

Kapitel geschafft? Teste eine fehlende Datei und eine leere Datei. Beide Fälle sollen eine nachvollziehbare Reaktion auslösen.

11 · Übungsprojekte · 3 Lektionen

Du baust einen Rechner, ein Notizprogramm und eine Dateistatistik mit geprüften Eingaben.

  1. Übungsprojekt: ein geprüfter Taschenrechner

  2. Übungsprojekt: Notizen dauerhaft speichern

  3. Übungsprojekt: Dateiinhalt auswerten

Kapitel geschafft? Führe jedes Projekt mit gültiger, leerer und ungültiger Eingabe aus und notiere die erwarteten Ergebnisse.

12 · Nachschlagen · 3 Lektionen

Du findest Fachbegriffe, typische Fehlermeldungen und konkrete Regeln für lesbaren C++-Code.

  1. C++-Glossar: Fachbegriffe verständlich erklärt

  2. Compiler- und Linkerfehler nachschlagen

  3. Gute C++-Gewohnheiten im Alltag

Kapitel geschafft? Ordne eine Fehlermeldung dem Compiler, dem Linker oder der Ausführung zu und suche die erste Ursache.

Mit einem Beispiel arbeiten#

  1. Lesen: Welche Eingaben, Werte und Ausgaben kommen vor?

  2. Vorhersagen: Schreibe die erwartete Ausgabe auf.

  3. Ausführen: Baue das Programm und vergleiche das Ergebnis.

  4. Verändern: Ändere genau einen Wert oder eine Anweisung und begründe die neue Ausgabe.

  5. Üben: Bearbeite die Aufgabe, bevor du die Lösung öffnest.

Ein vollständiger Codeblock mit main ist in der Regel ein eigenes Programm. Kopiere mehrere solche Beispiele nicht in dieselbe Datei. Beispiele mit mehreren Dateien nennen die Dateinamen; absichtlich fehlerhafte Ausschnitte sind gekennzeichnet. Ein kürzerer Ausschnitt ohne main ist häufig eine Erklärung und noch kein vollständiges Programm.

Wenn du festhängst#

Beobachtung

Prüfe zuerst

Der Compiler meldet einen Fehler

Die erste Fehlermeldung, die betroffene Zeile und die Zeile davor

Eine Funktion wird beim Linken nicht gefunden

Ob ihre Definition existiert und die zugehörige Quelldatei mitgebaut wird

Die Ausgabe ändert sich nicht

Ob du gespeichert hast und wirklich die neu gebaute Programmdatei startest

Eine Eingabe wird übersprungen

Ob eine vorherige Eingabe fehlgeschlagen ist oder noch ein Zeilenumbruch im Eingabestrom steht

Das Programm stürzt beim Zugriff ab

Ob Index, Zielobjekt und Lebensdauer gültig sind

Die Fehlerübersicht zeigt konkrete Beispiele. Im Debugger-Kapitel lernst du, Werte während der Ausführung anzusehen. Bei Zeigerproblemen gehe zunächst zu Speicher und Lebensdauer zurück.

Drei Projekte zum Abschluss#

  • Taschenrechner: Eine Eingabe zerlegen, Rechenzeichen prüfen und Division durch null behandeln.

  • Notizprogramm: Texte sammeln, speichern und beim nächsten Start wieder lesen.

  • Dateistatistik: Zeilen und Wörter zählen und eine geordnete Auswertung erstellen.

Die Projekte enthalten vollständige Beispiele. Verwende sie zuerst unverändert, prüfe die genannten Grenzfälle und ergänze anschließend eine eigene Funktion. So kannst du unterscheiden, ob ein Fehler aus dem Ausgangsbeispiel oder aus deiner Erweiterung stammt.

Mitwirkende 2

Menschen, deren Änderungen in dieser Seite veröffentlicht wurden.

Kommentare 5

test

Test Kommentar :)

Name

Nicht angemeldettest Farbe

AdministratorAdministrator

[Kommentar gelöscht]

JustinContributorbearbeitet

Hmmmm

JustinContributor

Test