Polymorphisme en C
Le polymorphisme est la capacité d'un objet à présenter plusieurs formes, lui permettant de répondre à différentes entrées avec des actions appropriées. En C , le polymorphisme est obtenu grâce à divers mécanismes :
Fonctions virtuelles :
Utilisé dans le polymorphisme d'exécution, où le comportement spécifique est déterminé au moment de l'exécution. Les fonctions virtuelles fournissent une interface commune pour les objets de différents types, leur permettant d'être traités comme des membres d'une classe de base.
Surcharge de nom de fonction :
Utilisé dans le polymorphisme au moment de la compilation, où plusieurs fonctions portant le même nom mais des paramètres différents sont définies. Le compilateur choisit la fonction appropriée en fonction des arguments passés.
Surcharge d'opérateur :
Similaire à la surcharge de fonction, mais permet de redéfinir les opérateurs ( , -, *, etc.) pour les types personnalisés, offrant une intégration transparente avec les opérateurs standard.
Ad-hoc Polymorphisme :
Utilisé lorsque la gamme de types pouvant être utilisés est finie et doit être spécifiée individuellement avant utilisation. Chaque type est explicitement pris en charge via un code spécifique.
Polymorphisme paramétrique (modèles) :
Utilisé lorsque tout le code est écrit sans spécifier de types spécifiques, permettant la réutilisation avec n'importe quel nombre de types. Les modèles permettent une programmation générique, dans laquelle des algorithmes peuvent être implémentés sans connaître les types réels impliqués.
Exemples :
Polymorphisme ad hoc :
void print_value(int x) { std::cout << x; } void print_value(double x) { std::cout << x; } int main() { print_value(5); print_value(3.14); return 0; }
Dans cet exemple, la fonction print_value est définie séparément pour int et double.
Polymorphisme paramétrique (modèle) :
template <typename T> void print_any(T x) { std::cout << x; } int main() { print_any(5); print_any(3.14); return 0; }
Ici, la fonction de modèle print_any prend n'importe quel paramètre de type T et imprime sa valeur. Ce modèle nous permet d'écrire du code indépendant des types spécifiques utilisé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!