Sie suchen Ihre bereits erworbenen Lerninhalte? Dann geht es hier entlang: Zum academy Campus
Lernen Sie, wie Vererbung richtig funktioniert und wie Sie mit Design Patterns und Type Erasure besseren Code entwickeln. Der IT-Experte und C++-Spezialist Klaus Iglberger zeigt in seinem Videokurs anhand vieler anschaulicher Praxisbeispiele, wie Sie moderne Konzepte in Ihre Entwicklung integrieren können. Sie können direkt mitmachen und Ihr erworbenes Wissen anhand von Übungen und Quizfragen überprüfen.
Flexible IT Weiterbildung on demand, schon als monatliches Abo erhältlich
Von Sean Parent stammt das berühmte Zitat “Inheritance is the Base Class of Evil” - Vererbung hat in den letzten Jahren erheblich an Popularität verloren, nicht nur in C++. Modernes C++ setzt vor allem auf einen anderen, vielleicht überlegenen Ansatz: “Value Semantics”.
Dieser Videokurs geht der Frage nach, warum vererbungsbasiertes Softwaredesign heute eher als problematisch angesehen wird und warum modernes C++ auf Value Semantics ausgerichtet ist. Der Kurs zeigt verschiedene Beispiele aus der Standardbibliothek und Beispiele in Form von klassischen und modernen Design Patterns. Außerdem wird die Frage behandelt, wie man gute Vererbungshierarchien implementiert und wie man die bekannten Probleme und den Missbrauch von Vererbung vermeidet.
Klicken zum Abspielen
Ich bin damit einverstanden, dass mir externe Inhalte angezeigt werden. Damit können personenbezogene Daten an Drittplattformen übermittelt werden. Mehr dazu in unserer Datenschutzerklärung.
Herzlich willkommen zu diesem Kurs
Intro
Das Problem: Zeichnen von Formen
Kommentar zu Code-Beispielen
Prozedurales Programmieren: Dynamischer Polymorphismus à la C
Prozedurales Programmieren: Erweitern mit neuen Typen
Objekt-Orientiertes Programmieren: Dynamischer Polymorphishmus à la C++
Vergleich der beiden Lösungsansätze
Quiz: Vererbungshierarchien: Die guten Seiten
Intro
Vererbung in der C++ Community
Performance-Probleme/Overhead
Erweiterbarkeit von Typen und Operationen
Missbrauch von Vererbung
Die Geschichte von C++
Quiz: Vererbungshierarchien: Die dunklen Seiten
Intro
Was ist Value Semantics?
Beispiele aus der Standardbibliothek: Die STL
Beispiele aus der Standardbibliothek: std::optional
Beispiele aus der Standardbibliothek: sd::function
Beispiele aus der Standardbibliothek: sd::variant
Der Gegenspieler: "Reference Semantics"
Beispiele aus der Standardbibliothek: std::string_view
Beispiele aus der Standardbibliothek: std::span
Design mit "Value Semantics"
Quiz: Die Philosophie des Modernen C++: Value Semantics
Intro
Das GoF Visitor Design Pattern
Die klassische Implementierung mit Vererbungshierarchien
Die moderne Implementierung mit std::variant
Vergleich zwischen klassischer und moderner Implementierung
Performance-Vergleich zwischen klassischer und moderner Implementierung
Quiz: Das Visitor Design Pattern
Intro
Das GoF Strategy Design Pattern
Die klassiche Implementierung mit Vererbungshierarchie
Die moderne Implementierung mit std::function
Vergleich zwischen klassischer und moderner Implementierung
Performance-Vergleich zwischen klassischer und moderner Implementierung
Quiz: Das Strategy Design Pattern
Intro
Type Erasure: Beispiele aus der Standardbibliothek
Die Implementierung von std::function: Das public Interface
Die Implementierung von std::function: Der Kern von Type Erasure
Die Implementierung von std::function: Die Special Member Functions
Umsetzung von Type Erasure für eigene Typen
Performance Optimierung mittels "Small Buffer Optimization"
Performance Optimierung mittels "Manual Dispatch"
Die Performance von Type Erasure
Type Erasure und Referenzen
Quiz: Type Erasure: Ersatz für Vererbungshierarchien?
Intro
Das GoF Decorator Design Pattern
Die klassische Implementierung mit Vererbungshierarchie
Die moderne Implementierung mit Type Erasure
"Policy-Based Design"
Moderne Implementierung mit Type Erasure und Policy-Based Design
Quiz: Das Decorator Design Pattern
Intro
Das GoF Factory Method Design Pattern
Die klassische Implementierung mit Vererbungshierarchien
Die moderne Implementierung mit Type Erasure
Die moderne Implementierung mit std::variant
Quiz: Das Factory Method Design Pattern
Intro
Erfüllen des Liskov Substitution Prinzips (LSP)
Maximale Tiefe von Vererbungshierarchien
Abhängigkeiten innerhalb einer Vererbungshierarchie
Vererbung von Non-Base-Klassen
Das "Non-Virtual Interface" Idiom (NVI)
Das "Curiously Recurring Template Pattern" (CRTP)
Limitierungen des CRTP
Quiz: Vererbung ja, aber richtig
Intro
"Name Lookup" in Vererbungshierarchien
Virtuelle Funktionen und Default Parameter
Virtuelle Functionsaufrufe in Constructors and Destructors
Arrays von abgeleiteten Typen
Siamese Twins
Quiz: Überraschungen in Vererbungshierarchien
Intro
Das Ziel der SOLID Prinzipien
Das Single Responsibility Prinzip (SRP)
Das Open-Closed Prinzip (OCP)
Das Liskov-Substitution Prinzip (LSP)
Das Interface Segregation Prinzip (ISP)
Das Dependency Inversion Prinzip (DIP)
Quiz: Appendix - Die SOLID Prinzipien
Fazit und Abschluss
In den Videokursen der heise Academy lernen Sie IT-Themen anschaulich und verständlich. In den Videos schauen Sie Experten bei der praktischen Arbeit zu und lassen sich alles genau erklären. Das Wissen ist in viele kleine Lernschritte und Aufgaben unterteilt - Sie können den Kurs Lektion für Lektion durcharbeiten oder gezielt zu Themen springen, die Sie interessieren. Die persönliche Lernumgebung der heise Academy bietet Ihnen viele Funktionen, die Sie beim Lernen unterstützen:
Flexibler Videoplayer mit vielen Steuerungsmöglichkeiten
Wissensquizzes zur Lernkontrolle
Lernhistorie und Lernfortschritt
Lesezeichen und Notizen
Volltextsuche in den Videos
Frage-den-Experten-Modul
Übungsmaterial zum Mitmachen
Responsive Web-App und Videostreaming für alle Endgeräte
Für diesen Videokurs wird lediglich ein Browser (mit eingeschalteter JavaScript-Funktionalität) und eine Internetverbindung benötigt.
Mit viel internationaler Erfahrung widmet sich Klaus Iglberger seiner Tätigkeit als freiberuflicher Trainer und Berater für C++. Nach dem Abschluss seiner Doktorarbeit in der Informatik im Jahr 2010 spezialisierte er sich auf C++-Software-Design für große Systeme. Klaus Iglberger ist der Initiator und Hauptentwickler der Blaze C++ Mathebibliothek und einer der Organisatoren der Münchner C++ User Group. Sein Fachwissen teilt er in Kursen in Deutschland, der EU und den USA.
Füllen Sie ganz einfach und bequem das Kontaktformular aus und wir werden Ihnen Ihre Fragen schnellstmöglich beantworten.
Teamleiter Redaktion & Content-Produktion
Telefonisch erreichbar: Mo – Fr | 8.30 – 16 Uhr