Pouvons-nous étendre la bibliothèque standard C via l'héritage ?
Nov 05, 2024 am 05:07 AMExtension de la bibliothèque standard C via l'héritage
La perception commune est que la bibliothèque standard C n'est pas destinée à être étendue via l'héritage. Cependant, l'existence de std::exception remet en question cette notion. Par conséquent, les questions suivantes se posent :
Les classes de bibliothèque standard peuvent-elles être étendues par héritage ?
En dehors de std::exception, il n'est pas clair quelles autres classes de bibliothèque standard sont destinés à l'héritage. Une approche pratique pour déterminer les candidats appropriés est la suivante :
- Vérifier les méthodes virtuelles : Les classes avec des méthodes virtuelles sont des candidats potentiels pour les classes de base.
- Évitez les cours avec des déclarations d'ami : Les problèmes d'encapsulation peuvent rendre l'héritage problématique.
- Considérez les modèles : La personnalisation via des spécialisations peut être préférable à l'héritage pour les modèles.
- Méfiez-vous des mécanismes basés sur des politiques :Ces mécanismes suggèrent que l'héritage n'est pas conseillé.
Implications de l'héritage des classes de bibliothèque standard
Lors de l'héritage d'une classe de bibliothèque standard comme std::exception, on peut se demander si la sous-classe doit adhérer à l'interface d'origine. Cependant, le « principe de substitution de Liskov » (LSP) suggère que le comportement de la sous-classe doit être cohérent avec celui de la classe de base en ce qui concerne le client.
Par conséquent, il est considéré comme une bonne pratique de assurez-vous que la fonction membre what() de la sous-classe renvoie un pointeur non nul, même si la norme ne l'exige pas explicitement pour les sous-classes de std::exception.
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!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Quels sont les types de valeurs renvoyées par les fonctions du langage C? Qu'est-ce qui détermine la valeur de retour?

Gulc: Cibliothèque C construite à partir de zéro

C Fonction Langue Format de lettre ÉTAPES DE CONVERSION DE CAS

Quelles sont les définitions et les règles d'appel des fonctions du langage C et quelles sont les

Utilisation distincte et partage de phrases

Où est la valeur de retour de la fonction de langue C stockée en mémoire?

Comment fonctionne la bibliothèque de modèle standard C (STL)?

Comment utiliser efficacement les algorithmes du STL (trier, trouver, transformer, etc.)?
