Heim >Backend-Entwicklung >C++ >Können wir die C-Standardbibliothek durch Vererbung erweitern?
Erweitern der C-Standardbibliothek durch Vererbung
Die allgemeine Auffassung ist, dass die C-Standardbibliothek nicht dazu gedacht ist, durch Vererbung erweitert zu werden. Die Existenz von std::Exception stellt diese Annahme jedoch in Frage. Daher stellen sich folgende Fragen:
Können Standardbibliotheksklassen durch Vererbung erweitert werden?
Abgesehen von std::Exception ist nicht klar, welche anderen Standardbibliotheksklassen es gibt sind zur Vererbung bestimmt. Ein praktischer Ansatz zur Ermittlung geeigneter Kandidaten ist wie folgt:
Auswirkungen der Vererbung von Standardbibliotheksklassen
Beim Erben von einer Standardbibliotheksklasse wie std::Exception ist es fraglich, ob die Unterklasse der ursprünglichen Schnittstelle entsprechen muss. Das „Liskov-Substitutionsprinzip“ (LSP) schlägt jedoch vor, dass das Verhalten der Unterklasse für den Client mit dem der Basisklasse übereinstimmen sollte.
Daher gilt es als bewährte Vorgehensweise Stellen Sie sicher, dass die what()-Memberfunktion der Unterklasse einen Nicht-Null-Zeiger zurückgibt, auch wenn der Standard dies nicht explizit für Unterklassen von std::Exception verlangt.
Das obige ist der detaillierte Inhalt vonKönnen wir die C-Standardbibliothek durch Vererbung erweitern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!