Surcharge des fonctions en C++

= fonctions différentes qui portent le même nom

 

Distinction par

   le nb d'arguments

   le type des arguments

sinon ambiguïté

 

Surdéfinition + conversions implicites ® ambiguïté

Le compilateur n'arrive pas à choisir quelle fonction appeler

 

Conversions implicites

char ® int

float ® double

 

Si toujours pas de correspondances

int ® float

 

Les fonctions avec valeurs par défaut sont des fonctions surchargées

 

void procédure(type1 x = val-déf-x, type2 y = val-déf-y)  

▪ les 2 paramètres x et y sont précisés

p(int x, int y)

▪ seul x est précisé

p(int x)

▪ aucun n'est précisé : on utilise les valeurs par défaut

p( )

® 3 fonctions difftes ayant le même nom

 

Affectation des paramètres : ®

Affectation des valeurs par défaut : ¬

Les paramètres non précisés seront affectés des valeurs par défaut.

 

Choix de la fonction surdéfinie

Le compilateur choisit la fonction qui a la meilleure correspondance de type pour chacun des arguments

Si une seule fonction : ok

sinon : erreur de compilation

 

Fonction main

 

2 arguments

   int   nb-de-mots-de-la-ligne-de-commande

   char *[ ]  tab-de-chaîne-de-car-qui-contient-chhacun-des-mots-dans-une-case-différente

 

# include <stdlib.h>

itoa("val-numérique-entière ")

® conversion en chaîne

 

atoi( )