Dipl.-Ing. Martin Weitzel, 64380 Roßdorf bei Darmstadt

EHFlow2020-01

Shared_Pointer Infografik

https://godbolt.org/z/MEgB_y

https://godbolt.org/z/M3MDm_


    Extras sortiert nach Kapiteln der Schulungsunterlage:


    Zu Kapitel 1: Einleitung (allgemeine Links)

    • Godgolt Compiler Explorer
    • C++ FAQ

    Zu Kapitel 2: Namespaces

    Zu Kapitel 3: Inheritance (incl. Multiple Inheritance / Interfaces)

    Zu Kapilel 4: Exceptions

    Zu Kapitel 5: Dynamic Memory

    Zu Kapitel 6: State Machines…

    • Eweiterung der folgenden beiden Statemachines Decomment_FSM

    • um die Zustände `ChrLiteral` und `QChrLiteral` (prinzpiell ganz ähnlich zu den bereits vorhandenen Zuständen (`QStrLiteral` und `QStrLiteral`)

    • `ChrLiteral wird durch ein einfaches Anführungszeichen (') betreten und verlassen

    • `QChrLiteral` wird (von `ChrLiteral` aus) durch einen Gegenschrägstrich betreten und durch jedes beliebiges Folgezeichen wieder verlassen

    Zu Kapitel 7: Standard Strings

    Zu Kapitel 8: Standard I/O-Streams

    Zu Kapitel 9: Dynamic Polymorphism / RTTI

    • InfoGraphic: Type-based branching
    • RTTI gestattet die Prüfung des Laufzeit-Typs eines Zeigers oder einer Referenz:
      • `dynamic_cast` prüft "unscharf":
        • Kann unter Berücksichtigung des LSP der Compilezeit-Typ `Base` verwendet werden wie ein `Derived`?
        • Dies ist auch dann der Fall, wenn der Laufzeit-Typ exackt ein `Derived` ist sondern auch dann, wenn dieser von `Derived` abgeleitet ist.
      • `typeid` prüft exakt:
        • Sollen abgeleitete Klassen eingeschlossen werden, müssen diese bei der Prüfung explizit berücksichtigt werden.

    Zu Kapitel 10: Templates

    •  
    • https://godbolt.org/z/ep6Qqs

      Zu Kapitel 11: Standard Template Library

      Zu Kapitel 12: Multi-Threading

      Zu Kapitel 13: Hardware Abstraction

      • Architektur-Beispiel zur Vermeidung bi-direktionaler Abhängigkeiten
        https://godbolt.org/z/RRrU5Q
      • Variante mit Referenz auf I_C_AE_2 in C_AE_1:
        https://godbolt.org/z/4go2QX

        Fragen zur abschließen den Lösung

        (Die Antworten finden sich vor allem im Source-Code der Lösung, teilweise aber auch bereits in der Aufgabenstellung, falls Sie diese zuerst bearbeiten wollen oder bereits bearbeitet haben.)

        Welche Klasse implementiert das Callback-Interface, über das der Sekundentakt an die registrierten Clocks weitergereicht wird?

      • Gehen Sie in die Musterlösung und beantworten Sie unter Zuhilfenahme der Aufgabenbeschreibung die folgenden Fragen:

      •  Wer sehr fleißig sein will und noch viel Zeit zur Verfügung hat, kann dazu ggf. auch eine Handskizze dazu anfertigen. Berücksichtigen Sie dabei
        • dass ein Zeiger auf ein Interface immer auf ein real vorhandenes Objekt einer Klasse zeigt, welches dieses Interface implemeniert;
        • dass eine Klasse, die virtuelle Member-Funktionen hat, einen Zeiger enthält, welcher auf eine Einsprung-Tabelle (VMT) zeigt;
        • dass die VMT wiederum (nur) die Adressen im Maschinen-Code enthält, auf die der Program-Counter zu Beginn dieser Funktion zeigen muss. (Zuvor müssen noch wichtigeCPU-Register gesichert werden, wozu neber dem vorherigen Wert des Program-Counters auch der aktuelle Stack-Pointer gehört, damit bei Rückkehr aus der Funktion hinter deren Aufruf fortgesetzt werden kann.)

      • Nicht verwendete / noch nicht einsortierte Godbolt Bespiele:

      https://godbolt.org/z/vC7NY8

      https://godbolt.org/z/F7Z-xf

      https://godbolt.org/z/2Ya95S

      https://godbolt.org/z/gcaVYm

      https://godbolt.org/z/8ebz6Z