Extension 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 :
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!