C++

Aus Dokument
Zur Navigation springen Zur Suche springen

Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).


  • Tim Buchalka / Frank Mitropoulos Beginning C++ Programming - From Beginner to Beyond

Grundlagen (Monat 1)

  • Woche 1: Einführung und Setup
    • Installation eines Compilers (z. B. GCC, Clang oder MSVC) und einer IDE (z. B. Visual Studio, CLion oder VS Code).
    • Das erste “Hello World”-Programm schreiben und den Kompilierungsprozess verstehen.
    • Grundlegende Datentypen (int, char, float, double, bool) und Variablen verstehen.
    • Einfache Ein- und Ausgabe mit std::cin und std::cout.
  • Woche 2: Kontrollstrukturen
    • Verzweigungen: if, else if, else und switch.
    • Schleifen: for, while, do-while.
  • Woche 3: Funktionen
    • Deklaration vs. Definition von Funktionen.
    • Parameterübergabe: Call by Value, Call by Reference und Call by Pointer.
    • Rückgabewerte und der Typ void.
    • Überladen von Funktionen (Function Overloading).
  • Woche 4: Arrays und Strings
    • Arbeiten mit C-Style Arrays und dem modernen std::array.
    • Zeichenketten mit std::string verwalten und grundlegende String-Manipulationen durchführen.

Fortgeschrittene C++ Konzepte (Monat 2)

  • Woche 5: Zeiger und Speicherverwaltung
    • Zeiger (Pointers) und Referenzen: Grundlagen, Syntax und Unterschiede.
    • Zeigerarithmetik.
    • Dynamische Speicherallokation mit new und delete (Bewusstsein für Memory Leaks).
  • Woche 6: Objektorientierte Programmierung (OOP) - Die Grundlagen
    • Klassen und die Instanziierung von Objekten.
    • Attribute (Member-Variablen) und Methoden (Member-Funktionen).
    • Konstruktoren und Destruktoren richtig einsetzen.
    • Kapselung: Zugriffsmodifizierer (public, private, protected).
  • Woche 7: OOP - Fortgeschrittene Konzepte
    • Vererbung (Inheritance): Basis- und abgeleitete Klassen.
    • Polymorphismus und die Verwendung virtueller Funktionen (virtual, override).
    • Abstrakte Klassen und rein virtuelle Funktionen (Interfaces).
  • Woche 8: Fehlerbehandlung und Datei-I/O
    • Exception Handling mit try, catch und throw.
    • Lesen und Schreiben von Dateien mit Streams (ifstream, ofstream, fstream).

Moderne C++ Features (Monat 3)

  • Woche 9: C++ Standardbibliothek (STL) - Die Container
    • Sequenzielle Container: std::vector, std::list, std::deque.
    • Assoziative Container: std::map, std::set, std::unordered_map, std::unordered_set.
  • Woche 10: STL - Algorithmen und Iteratoren
    • Iteratoren: Konzepte, Typen und wie man navigiert.
    • Wichtige Algorithmen aus <algorithm> anwenden (z. B. std::sort, std::find, std::for_each).
  • Woche 11: Modernes C++ (C++11 und höher)
    • Typableitung mit dem auto-Keyword.
    • Range-based for-Loops verwenden.
    • Anonyme Funktionen: Lambda-Ausdrücke.
    • Ressourcenmanagement: Smart Pointers (std::unique_ptr, std::shared_ptr) statt roher Zeiger (RAII-Prinzip).
  • Woche 12: Abschlussprojekt
    • Wende das gelernte Wissen in einem Projekt an, z.B. eine Bibliotheksverwaltung, ein Text-Adventure, eine To-Do-Anwendung mit Dateispeicherung oder die Implementierung eines bekannten Brettspiels (z. B. Tic-Tac-Toe oder Vier Gewinnt) im Terminal.

Weiterführende Themen (Optional / Ausblick)

  • Templates: Generische Programmierung für Funktionen und Klassen.
  • Multithreading und nebenläufige Programmierung (std::thread, std::mutex).
  • Design Patterns in C++.
  • Performance-Optimierung und Profiling.
  • Move Semantics (std::move) und Rvalue-Referenzen.

Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).