Maison > développement back-end > C++ > le corps du texte

Quand est-il acceptable d'hériter des classes de la bibliothèque standard C ?

Susan Sarandon
Libérer: 2024-11-03 13:28:03
original
509 Les gens l'ont consulté

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

Extension de la bibliothèque standard C via l'héritage

Bien qu'il soit souvent supposé qu'hériter des classes de la bibliothèque standard C n'est pas souhaitable, il existe des exceptions notables .

Classes identifiables pour Héritage

Déterminer si une classe de bibliothèque standard est destinée à l'héritage peut être difficile. Cependant, les directives suivantes peuvent fournir un aperçu :

  • Si la classe possède des méthodes virtuelles, elle est un candidat possible à l'héritage.
  • Des déclarations "amies" excessives indiquent des problèmes d'encapsulation, ce qui rend l'héritage moins adaptés.
  • Les modèles devraient être envisagés pour la spécialisation plutôt que pour l'héritage.
  • Les mécanismes basés sur des politiques, comme std::char_traits, suggère que l'héritage n'est pas prévu.

Exigences des classes dérivées

Lors de l'héritage des classes de la bibliothèque standard, le principe de substitution de Liskov (LSP) devrait être appliqué. Un comportement observable, tel que la fonction what() dans std::exception, doit correspondre à la classe de base. La conformité à la norme est moins une préoccupation que l'exactitude dans ce contexte.

Conclusion

Bien que la norme elle-même manque de directives explicites sur l'extension de la bibliothèque standard, il est crucial de réfléchissez attentivement à l’utilisation prévue des classes et appliquez judicieusement les principes d’héritage.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal