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

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

Susan Sarandon
Freigeben: 2024-11-03 13:28:03
Original
550 Leute haben es durchsucht

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage