OVH Cloud OVH Cloud

[DEBUTANT] Prob de syntaxe....

2 réponses
Avatar
Ataya
Voila, j'ai un tout petit PGM tout simple qui inverse la valeur de deux
entiers mais il me met erreur de syntaxe sur une ligne et je ne
comprends pas pourquoi, merci d'avance de votre indulgence quand a mon
ignorance...

#include <iostream>


using namespace std;

int main()
{
int wI=3D1;
int wY=3D5;

//D=E9claration de la fonction
void f(int);

//D=E9finition de la fonction
void f(int wI, int wY)
// ICI IL ME MET SYNTAX ERROR
{
int wZ;

wZ=3DwI;
wI=3DwY;
wY=3DwZ;

}


//Affichage du chiffre voulu
cout<<"wI =3D"<<wI<<"\n";
cout<<"wY =3D"<<wY<<"\n";

=20

=20
=20
=20
system("PAUSE");=09
return 0;
}

2 réponses

Avatar
Arnaud Debaene
Ataya wrote:
Voila, j'ai un tout petit PGM tout simple qui inverse la valeur de
deux entiers mais il me met erreur de syntaxe sur une ligne et je ne
comprends pas pourquoi, merci d'avance de votre indulgence quand a mon
ignorance...
Tu n'as pas le droit de définir une fonction locale en C++ (càd un fonction

à l'intérieur d'une fonction). Définit la fonction f avant main.

Ensuite ta fonction f ne fait strictement rien parce que en C++, les
passages de paramètres de fonction se font par valeur, ce qui veut dire que
les variables wI et wY dans f sont des copies (distinctes) des variables wI
etwY de main. Pour modifier les paramètres de l'appelant, tu dois passer les
paramètres de la fonction f par *référence*, en utilisant la syntaxe
suivante :
void f( int& wI, int& wY)

Arnaud

Avatar
Ataya
Merci beaucoup