Petite question en c++ , svp !!!

Résolu
marwen109 Messages postés 63 Date d'inscription   Statut Membre Dernière intervention   -  
Pacorabanix Messages postés 3248 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, a tous





soit le programme suivante:
#include<iostream.h>

void f(int, int=12);

void f(int a, int b)
{
cout<<"arugument 1 ="<<a<<endl;
cout<<"arugument 2 ="<<b<<endl;
}

void main()
{
int n=5;
int p=10;
f(n,p);
f(n);

}

il affiche :
1/   arugument 1 =5 
2/   arugument 2 =10
3/   arugument 1 =5
4/   arugument 2 =12


mon question est de savoir d'où il vient le 12 dans la ligne "4/" , je sais quelle vient de "int=12" mais comment ?? en principe "void f(int , int=12)" est indépendante
de la fonction void f(int a, int b)
{
....
}

tous ce que je veux, une explication ;) merci d'avance

1 réponse

Pacorabanix Messages postés 3248 Date d'inscription   Statut Membre Dernière intervention   663
 
la ligne void f(int, int=12); est juste le "prototype" de la fonction f.

Il est là pour résumer ce qu'est la fonction f et quels arguments elle prend.

le compilateur en a besoin, si par exemple tu choisis de mettre la fonction main avant la fonction f.


En plus de cela, dans le prototype, dans ton cas il est précisé une valeur par défaut.

c'est à dire qu'il est dit qu'on peut appeler f avec un seul argument : f(a), au lieu des deux prévus : f(a,b) , et que dans ce cas le compilateur interprétera ceci comme si tu avais fait f(a, 12).
0