Call for Papers

Sicheres C++ Class Design - Rule of Zero and Beyond ( Vortrag )

Value, Empty, Monomorphic, Polymorphic, Resource Managment

Referent: Prof. Peter Sommerlad, HSR Rapperswil
Vortragsreihe: Implementierung I
Zeit: 04.12.18 08:50-09:35

Zielgruppe

Entwicklung

Themenbereiche

Analyse & Design, Implementierung, Sichere Software

Schwerpunkt

Technologie

Voraussetzungen

Grundlagenwissen

Kurzfassung

Als komplexe Sprache ist C++ für viele schwer beherrschbar. Wann sollte man move-Semantik, noexcept, constexpr, virtual oder final wo nutzen? Welche Kombinationen machen Sinn? Das "Rule of Zero" sagt, dass man den vom Compiler zur Verfügung gestellten "Special Member Functions" vertrauen sollte. Unter welchen Voraussetzungen kann man das? Wann muss man davon abweichen und auf was muss man dann achten? "Value"-Klassen, die Werte darstellen, sollten zum Beispiel keine virtual Member Funktionen definieren. Sollten man "final" bei solchen Klassen nutzen? Wann benötigt man eine Klassenhierarchie? Viele C++ Programmierrichtlinien versuchen dein Einsatz von Sprachmittel zu reglementieren, so dass man möglichst korrekten und sicheren Code schreibt. Dieser Vortrag gibt einen Überblick welche Arten von Klassen damit sinnvoll zu gestalten sind und wo spezielle Expertise gefragt ist, um sinnvollen und korrekten Code zu schreiben.

Gliederung

* Review of Howard Hinnants famous overview slide on special member functions
* Rule of Zero vs. Rule of Five/Six
* A taxonomy of sane (and safe) C++ class types
* Value Types
* Empty Types
* Monomorphic Object Types
* Polymorphic Object Types
* Resource Managing Types

Nutzen und Besonderheiten

Die Teilnehmer erhalten einen Überblick, welche Arten von C++ Klassen sinnvoll sind und werden damit in die Lage versetzt ihr eigenes Design zu reflektieren und bewusster darüber zu entscheiden moderne C++ Sprachmittel effektiv einzusetzen, so dass sicherer und qualitativ hochwertiger C++ Programmcode entsteht.

Über den Referenten

Prof. Peter Sommerlad leitet das IFS Institute for Software an der FHO/HSR Rapperswil, Schweiz. Prof. Sommerlad ist Coautor der Bücher POSA Vol.1 und Security Patterns. Sein ZIel ist es Software einfacher zu gestalten durch Decremental Development: Refactoring Software auf 10% ihrer Grösse mit besserem Design, Testbarkeit, Qualität und Funktion. Er ist ausgewiesener C++ Experte im ISO Komitee und hat die C++ Entwicklungsumgebung Cevelop und das CUTE Unit Testing Framework ins Leben gerufen.