C++: Unterschied zwischen den Versionen

Aus Dokument
Zur Navigation springen Zur Suche springen
imported>Import
Version 175
(2 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt)
Zeile 1: Zeile 1:
Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).
''Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).''
----


== C++ Lernplan ==
== Weblink ==


=== Schritt 1: Grundlagen ===
* Tim Buchalka / Frank Mitropoulos Beginning C++ Programming - From Beginner to Beyond
* Einführung in C++
* Einfache Programme schreiben
* Variablen
* Datentypen
* Ein- und Ausgabe


=== Schritt 2: Kontrollstrukturen ===
== Grundlagen (Monat 1) ==
* Bedingte Anweisungen (if, else)
* Schleifen (for, while, do-while)
* Switch-Anweisungen


=== Schritt 3: Funktionen ===
* '''Woche 1: Einführung und Setup'''
* Funktionsdefinition und -deklaration
** Installation eines Compilers (z. B. GCC, Clang oder MSVC) und einer IDE (z. B. Visual Studio, CLion oder VS Code).
* Parameter und Rückgabewerte
** Das erste “Hello World”-Programm schreiben und den Kompilierungsprozess verstehen.
* Rekursion
** Grundlegende Datentypen (int, char, float, double, bool) und Variablen verstehen.
** Einfache Ein- und Ausgabe mit <code>std::cin</code> und <code>std::cout</code>.
* '''Woche 2: Kontrollstrukturen'''
** Verzweigungen: <code>if</code>, <code>else if</code>, <code>else</code> und <code>switch</code>.
** Schleifen: <code>for</code>, <code>while</code>, <code>do-while</code>.
* '''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 <code>void</code>.
** Überladen von Funktionen (Function Overloading).
* '''Woche 4: Arrays und Strings'''
** Arbeiten mit C-Style Arrays und dem modernen <code>std::array</code>.
** Zeichenketten mit <code>std::string</code> verwalten und grundlegende String-Manipulationen durchführen.


=== Schritt 4: Arrays und Strings ===
== Fortgeschrittene C++ Konzepte (Monat 2) ==
* Arrays definieren und verwenden
* Zeichenketten (Strings) in C++
* Mehrdimensionale Arrays


=== Schritt 5: Zeiger und Referenzen ===
* '''Woche 5: Zeiger und Speicherverwaltung'''
* Einführung in Zeiger
** Zeiger (Pointers) und Referenzen: Grundlagen, Syntax und Unterschiede.
* Zeigerarithmetik
** Zeigerarithmetik.
* Referenzen und ihre Verwendung
** Dynamische Speicherallokation mit <code>new</code> und <code>delete</code> (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 (<code>public</code>, <code>private</code>, <code>protected</code>).
* '''Woche 7: OOP - Fortgeschrittene Konzepte'''
** Vererbung (Inheritance): Basis- und abgeleitete Klassen.
** Polymorphismus und die Verwendung virtueller Funktionen (<code>virtual</code>, <code>override</code>).
** Abstrakte Klassen und rein virtuelle Funktionen (Interfaces).
* '''Woche 8: Fehlerbehandlung und Datei-I/O'''
** Exception Handling mit <code>try</code>, <code>catch</code> und <code>throw</code>.
** Lesen und Schreiben von Dateien mit Streams (<code>ifstream</code>, <code>ofstream</code>, <code>fstream</code>).


=== Schritt 6: Klassen und Objekte ===
== Moderne C++ Features (Monat 3) ==
* Einführung in die objektorientierte Programmierung
* Klassen und Objekte definieren
* Konstruktoren und Destruktoren
* Vererbung und Polymorphismus


=== Schritt 7: Fortgeschrittene Themen ===
* '''Woche 9: C++ Standardbibliothek (STL) - Die Container'''
* Templates
** Sequenzielle Container: <code>std::vector</code>, <code>std::list</code>, <code>std::deque</code>.
* Ausnahmebehandlung
** Assoziative Container: <code>std::map</code>, <code>std::set</code>, <code>std::unordered_map</code>, <code>std::unordered_set</code>.
* Standard Template Library (STL)
* '''Woche 10: STL - Algorithmen und Iteratoren'''
* Dateiverarbeitung
** Iteratoren: Konzepte, Typen und wie man navigiert.
** Wichtige Algorithmen aus <algorithm> anwenden (z. B. <code>std::sort</code>, <code>std::find</code>, <code>std::for_each</code>).
* '''Woche 11: Modernes C++ (C++11 und höher)'''
** Typableitung mit dem <code>auto</code>-Keyword.
** Range-based for-Loops verwenden.
** Anonyme Funktionen: Lambda-Ausdrücke.
** Ressourcenmanagement: Smart Pointers (<code>std::unique_ptr</code>, <code>std::shared_ptr</code>) 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.


=== Schritt 8: Projekte und Übungen ===
== Weiterführende Themen (Optional / Ausblick) ==
* Kleine Projekte zur Anwendung des Gelernten
* Übungsaufgaben und Herausforderungen
==Weitere Themen==


* [[Anwendungsbereiche für C++ -Programmierprojekte]]
* Templates: Generische Programmierung für Funktionen und Klassen.
* Multithreading und nebenläufige Programmierung (<code>std::thread</code>, <code>std::mutex</code>).
* Design Patterns in C++.
* Performance-Optimierung und Profiling.
* Move Semantics (<code>std::move</code>) und Rvalue-Referenzen.


==Video==
----
‎<youtube>_apAsU9ROp0?si=NnttaIvtYz8vAu-a</youtube>
''Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).''
 
==Webframework==
* [[C++ Webframework und Bibliothek]]
 
Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).

Version vom 3. März 2026, 20:26 Uhr

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).