Utilisation de "super" en C
Introduction
En C , l'utilisation du L'idiome "typedef super" pour permettre l'accès à la classe de base en tant que "super" est devenu une pratique courante, en particulier parmi les programmeurs expérimentés. Cet idiome implique la création d'un typedef dans une classe dérivée qui fait référence à la classe de base. Voici une brève explication de son fonctionnement et des avantages qu'il offre :
Comment ça marche
Le code suivant illustre l'idiome "typedef super" :
class Derived : public Base { typedef Base super; // Creates an alias for Base
Avec ce typedef, vous pouvez utiliser l'alias "super" pour accéder à la classe de base dans divers scénarios, tels que dans les constructeurs :
Derived(int i, int j) : super(i), J(j) {}
ou lors de l'appel de méthodes de la classe de base dans overrided versions :
void Derived::foo() { super::foo(); // Calls the overridden version of foo in Derived }
L'idiome peut être utilisé pour le chaînage, permettant l'accès à la classe de base de la classe de base :
class DerivedDerived : public Derived { typedef Derived super; // Creates an alias for Derived
void DerivedDerived::bar() { super::bar(); // Calls Derived::bar super::super::bar; // Calls Base::bar }
Avantages
L'idiome "typedef super" offre plusieurs avantages :
Commonalité et standardisation
Bien que l'idiome "typedef super" soit devenu assez courant, il est toujours considéré comme une fonctionnalité non standard en C . Cependant, la discussion mentionnée dans la réponse suggère que le concept a été initialement envisagé pour être inclus dans le langage.
Conclusion
L'idiome "typedef super" est une technique utile qui améliore la lisibilité et la cohérence du code dans les programmes C. Il est largement utilisé et a été implémenté par les programmeurs pour émuler la fonctionnalité du mot-clé « super » trouvé dans d'autres langages. Bien qu'il ne soit pas standardisé, cet idiome reste un outil précieux pour les développeurs C expérimentés.
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!