C++: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Keine Bearbeitungszusammenfassung |
|||
| (6 dazwischenliegende Versionen von 2 Benutzern 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++ | ==Weblink== | ||
* Tim Buchalka / Frank Mitropoulos Beginning C++ Programming - From Beginner to Beyond | |||
=== | == Grundlagen (Monat 1) == | ||
* | * '''Woche 1: Einführung und Setup''' | ||
* Schleifen | ** 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 <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. | |||
=== | == Fortgeschrittene C++ Konzepte (Monat 2) == | ||
* | * '''Woche 5: Zeiger und Speicherverwaltung''' | ||
* | ** Zeiger (Pointers) und Referenzen: Grundlagen, Syntax und Unterschiede. | ||
* | ** Zeigerarithmetik. | ||
** 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>). | |||
=== | == Moderne C++ Features (Monat 3) == | ||
* | * '''Woche 9: C++ Standardbibliothek (STL) - Die Container''' | ||
* | ** Sequenzielle Container: <code>std::vector</code>, <code>std::list</code>, <code>std::deque</code>. | ||
* | ** Assoziative Container: <code>std::map</code>, <code>std::set</code>, <code>std::unordered_map</code>, <code>std::unordered_set</code>. | ||
* '''Woche 10: STL - Algorithmen und Iteratoren''' | |||
** Iteratoren: Konzepte, Typen und wie man navigiert. | |||
** Wichtige Algorithmen aus <code><algorithm></code> 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. | |||
=== | == Weiterführende Themen (Optional / Ausblick) == | ||
* | * Templates: Generische Programmierung für Funktionen und Klassen. | ||
* | * Multithreading und nebenläufige Programmierung (<code>std::thread</code>, <code>std::mutex</code>). | ||
* Referenzen | * Design Patterns in C++. | ||
* Performance-Optimierung und Profiling. | |||
* Move Semantics (<code>std::move</code>) 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).'' | |||
Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act). | |||
Aktuelle 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).
Weblink
- 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::cinundstd::cout.
- Woche 2: Kontrollstrukturen
- Verzweigungen:
if,else if,elseundswitch. - Schleifen:
for,while,do-while.
- Verzweigungen:
- 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::stringverwalten und grundlegende String-Manipulationen durchführen.
- Arbeiten mit C-Style Arrays und dem modernen
Fortgeschrittene C++ Konzepte (Monat 2)
- Woche 5: Zeiger und Speicherverwaltung
- Zeiger (Pointers) und Referenzen: Grundlagen, Syntax und Unterschiede.
- Zeigerarithmetik.
- Dynamische Speicherallokation mit
newunddelete(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,catchundthrow. - Lesen und Schreiben von Dateien mit Streams (
ifstream,ofstream,fstream).
- Exception Handling mit
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.
- Sequenzielle Container:
- 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).
- Typableitung mit dem
- 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).