Extension de la bibliothèque standard par héritage
La croyance selon laquelle la bibliothèque standard C n'est généralement pas destinée à être étendue par héritage est largement répandue . Cependant, après un examen plus approfondi, il devient évident que certains aspects de la bibliothèque ont effectivement été conçus à cet effet.
Points d'extension prévus dans la bibliothèque standard
Un de ces composants est la classe std::exception. Il est explicitement destiné à être hérité, permettant la création de types d'exceptions personnalisés. Ce faisant, certaines directives doivent être prises en compte :
Adhérence de l'interface lors de l'extension
En tant que bonne pratique, lors de l'héritage de classes de bibliothèque standard, il est important de respecter l'interface définie dans la norme ISO. Cela signifie que, par exemple, la fonction membre what() d'une classe d'exception héritée doit renvoyer une chaîne de texte étroit (NTBS), garantissant la compatibilité avec les fonctions attendant une exception std::exception. Bien qu'un programme utilisant une classe d'exception avec une fonction what() non conforme aux normes puisse techniquement encore être compilé, il s'écarte de l'objectif prévu et introduit des problèmes de compatibilité potentiels.
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!