Extension de la bibliothèque standard C via l'héritage
La bibliothèque standard C, largement perçue comme un bastion inaccessible pour l'héritage, dément une exception cachée au sein ses rangs. La classe std::exception est la seule entité explicitement conçue pour l'extension. Cela soulève la question :
D'autres classes de bibliothèques standard peuvent-elles être étendues ?
Bien qu'aucune liste définitive n'existe, la réponse dépend du déchiffrement de l'intention de la norme. Une approche pragmatique consiste à examiner les critères suivants :
Implications de l'héritage des classes de bibliothèque standard
L'extension de std::exception met en évidence une autre préoccupation :
Adhésion aux attentes de l'interface
Lors de l'héritage d'un classe de bibliothèque standard, l'interface héritée doit être respectée. Par exemple, une sous-classe qui modifie la fonction membre what() pour renvoyer un pointeur nul au lieu d'une description valide violerait l'interface spécifiée dans la norme ISO. Bien qu'il ne s'agisse pas strictement d'un problème de conformité aux normes, cela compromet l'exactitude et sape le principe de substituabilité des classes de base.
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!