„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wann ist es akzeptabel, von C++-Standardbibliotheksklassen zu erben?

Wann ist es akzeptabel, von C++-Standardbibliotheksklassen zu erben?

Veröffentlicht am 08.11.2024
Durchsuche:937

When is It Acceptable to Inherit from C   Standard Library Classes?

Erweitern der C-Standardbibliothek durch Vererbung

Obwohl häufig angenommen wird, dass die Vererbung von Klassen der C-Standardbibliothek nicht wünschenswert ist, gibt es bemerkenswerte Ausnahmen .

Identifizierbare Klassen für die Vererbung

Die Feststellung, ob eine Standardbibliotheksklasse für die Vererbung vorgesehen ist, kann eine Herausforderung sein. Die folgenden Richtlinien können jedoch einige Einblicke liefern:

  • Wenn die Klasse über virtuelle Methoden verfügt, ist sie ein möglicher Kandidat für die Vererbung.
  • Übermäßige „Friend“-Deklarationen weisen auf Kapselungsprobleme hin, die zur Vererbung führen weniger geeignet.
  • Vorlagen sollten für die Spezialisierung statt für die Vererbung in Betracht gezogen werden.
  • Richtlinienbasierte Mechanismen wie std::char_traits legen nahe, dass eine Vererbung nicht beabsichtigt ist.

Abgeleitete Klassenanforderungen

Beim Erben von Klassen der Standardbibliothek sollte das Liskov-Substitutionsprinzip (LSP) angewendet werden. Beobachtbares Verhalten, wie etwa die Funktion what() in std::Exception, sollte mit der Basisklasse übereinstimmen. Die Konformität mit dem Standard ist in diesem Zusammenhang weniger wichtig als die Korrektheit.

Schlussfolgerung

Während es im Standard selbst an expliziten Anleitungen zur Erweiterung der Standardbibliothek mangelt, ist dies von entscheidender Bedeutung Überlegen Sie sich sorgfältig die beabsichtigte Verwendung von Klassen und wenden Sie Vererbungsprinzipien mit Bedacht an.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3