Quelle: dotnetpro
Risiko virtueller Funktionen 13.01.2025, 00:00 Uhr

Vorsicht an der Bahnsteigkante

Unerwartete Probleme mit virtuellen Funktionen im Konstruktor.
Virtuelle Funktionen sind ein fester Baustein der Polymorphie [1]. Es handelt sich hierbei um Methoden einer Klasse, deren Einsprungsadresse erst zur Laufzeit ermittelt wird. Die Bindung erfolgt somit dynamisch und ermöglicht es, Klassen von einer Basisklasse abzuleiten und im Zuge dessen Funktionen der Basisklasse zu überschreiben, um diese an spezifische Bedürfnisse anzupassen. Durch die Ableitung der Klassen ergibt sich die Polymorphie.
Ein konkretes Beispiel für Polymorphie ist eine Anwendung, welche Kontakte aus verschiedenen Systemen (M365, AD, CSV-Datei) einlesen und in ein einheitliches Format wandeln soll. Dafür könnten für die verschiedenen Protokolle spezifische Enumeratoren implementiert werden. Die Ermittlung der eindeutigen Kennung müsste individuelle Eingriffe ermöglichen, da diese gegebenenfalls aus mehreren Attributen des Kontakts berechnet werden muss (zum Beispiel Vorname, Separator, Nachname, Separator, Abteilung).

Jetzt 1 Monat kostenlos testen!

Sie wollen zukünftig auch von den Vorteilen eines plus-Abos profitieren? Werden Sie jetzt dotnetpro-plus-Kunde.
  • + Digitales Kundenkonto,
  • + Zugriff auf das digitale Heft,
  • + Zugang zum digitalen Heftarchiv,
  • + Auf Wunsch: Weekly Newsletter,
  • + Sämtliche Codebeispiele im digitalen Heftarchiv verfügbar