Heim  >  Artikel  >  Backend-Entwicklung  >  Wann ist es akzeptabel, von Klassen der C-Standardbibliothek zu erben?

Wann ist es akzeptabel, von Klassen der C-Standardbibliothek zu erben?

Susan Sarandon
Susan SarandonOriginal
2024-11-03 13:28:03512Durchsuche

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

Erweitern der C-Standardbibliothek durch Vererbung

Während oft angenommen wird, dass die Vererbung von Klassen der C-Standardbibliothek nicht wünschenswert ist, gibt es bemerkenswerte Ausnahmen .

Identifizierbare Klassen für Vererbung

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

  • 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.
  • Stattdessen sollten Vorlagen zur Spezialisierung in Betracht gezogen werden Vererbung.
  • Richtlinienbasierte Mechanismen wie std::char_traits legen nahe, dass Vererbung nicht beabsichtigt ist.

Abgeleitete Klassenanforderungen

Wann 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.

Fazit

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.

Das obige ist der detaillierte Inhalt vonWann ist es akzeptabel, von Klassen der C-Standardbibliothek zu erben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn