Récuperer résultat d'une fonction dans un .h
Résolu/Fermé
A voir également:
- Récuperer résultat d'une fonction dans un .h
- Fonction si et - Guide
- Comment recuperer un message supprimé sur whatsapp - Guide
- Recuperer video youtube - Guide
- Comment récupérer un compte facebook piraté - Guide
- Impossible de récupérer mon compte gmail - Guide
2 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
7 mars 2012 à 22:15
7 mars 2012 à 22:15
Bonjour,
Ca ne sert pas du tout à ça un header. Dans le header, on ne met pas le code mais simplement la déclaration des prototypes des fonctions. D'ailleurs, on ne compile pas le header...
Il faut donc que tu déportes ton code dans un autre fichier .cpp. Et là tu appelles ta fonction après #include du header.
Ca ne sert pas du tout à ça un header. Dans le header, on ne met pas le code mais simplement la déclaration des prototypes des fonctions. D'ailleurs, on ne compile pas le header...
Il faut donc que tu déportes ton code dans un autre fichier .cpp. Et là tu appelles ta fonction après #include du header.
Bonsoir et merci pour ta réponse,
Donc si je comprends bien, cela me donnerais quelque chose dans ce genre :
Fonction.cpp :
int affichage(int choix)
{
int resultat;
cout << "1.Connexion \n" << "2.Inscription \n";
cin >> choix;
if(choix == 1)
{
resultat = 1;
}
else
{
resultat = 2;
}
return resultat;
}
MAIN.cpp :
int main(int argc, char *argv[])
{
int choix, choixFait,loginSaisi;
string nom, mdp;
affichage(choix);
HEADER :
#ifndef FONCTION_H_INCLUDED
#define FONCTION_H_INCLUDED
int affichage(int choix);
int connexionLogin(string nom, string mdp);
#endif // FONCTION_H_INCLUDED
C'est bien ça?
Donc si je comprends bien, cela me donnerais quelque chose dans ce genre :
Fonction.cpp :
int affichage(int choix)
{
int resultat;
cout << "1.Connexion \n" << "2.Inscription \n";
cin >> choix;
if(choix == 1)
{
resultat = 1;
}
else
{
resultat = 2;
}
return resultat;
}
MAIN.cpp :
int main(int argc, char *argv[])
{
int choix, choixFait,loginSaisi;
string nom, mdp;
affichage(choix);
HEADER :
#ifndef FONCTION_H_INCLUDED
#define FONCTION_H_INCLUDED
int affichage(int choix);
int connexionLogin(string nom, string mdp);
#endif // FONCTION_H_INCLUDED
C'est bien ça?
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
7 mars 2012 à 23:09
7 mars 2012 à 23:09
C'est bien ça dans le principe. Après, faut revoir les fonctions.
Ta fonction main n'est pas finie.
Ensuite, tu mets affichage(choix) il faudrait plutôt faire un passage par pointeur ou plus simplement par référence. Sinon ta fonction affichage ne modifiera pas la variable choix.
Ta fonction main n'est pas finie.
Ensuite, tu mets affichage(choix) il faudrait plutôt faire un passage par pointeur ou plus simplement par référence. Sinon ta fonction affichage ne modifiera pas la variable choix.
D'accord, je saisi mieux le concept, merci.
Mais j'ai du mal avec les passages par réference ... Pourrais-tu me montrer la démarche pour ma configuration actuelle?
Je veux lancer la fonction affichage(choix); et selon le resultat qu'elle retourne lancer une autre fonction, pour ce cas présent afficher un cout<<"connexion"; si ma fonction retourne 1 et cout<<"Inscription"; si elle retourne 0, c'est juste a titre d'exemple.
Mais j'ai du mal avec les passages par réference ... Pourrais-tu me montrer la démarche pour ma configuration actuelle?
Je veux lancer la fonction affichage(choix); et selon le resultat qu'elle retourne lancer une autre fonction, pour ce cas présent afficher un cout<<"connexion"; si ma fonction retourne 1 et cout<<"Inscription"; si elle retourne 0, c'est juste a titre d'exemple.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
8 mars 2012 à 00:26
8 mars 2012 à 00:26
Le prototype de la fonction doit devenir : int affichage(int &choix) tout simplement.
Pour récupérer le résultat de la fonction affichage, int result = affichage(choix);
Et après, tu peux faire des tests sur la variable result.
Pour récupérer le résultat de la fonction affichage, int result = affichage(choix);
Et après, tu peux faire des tests sur la variable result.
Bonjour,
Est-ce normale que lorsque je déclare des varibles stoquant le résultat de mes fonctions, ça lance la fonction ?
Au début de mon main, je déclare :
int choix;
int main(int argc, char *argv[])
{
affichage(choix); // je lance ma fonction
int choixFait =affichage(choix);
/* J'initialise ma variable, mais ça me lance la fonction affichagechoix); une deuxième fois... et si je la déclare avant le main ou même avant ma fonction affichage(choix); cela ne change rien...*/
Est-ce normale que lorsque je déclare des varibles stoquant le résultat de mes fonctions, ça lance la fonction ?
Au début de mon main, je déclare :
int choix;
int main(int argc, char *argv[])
{
affichage(choix); // je lance ma fonction
int choixFait =affichage(choix);
/* J'initialise ma variable, mais ça me lance la fonction affichagechoix); une deuxième fois... et si je la déclare avant le main ou même avant ma fonction affichage(choix); cela ne change rien...*/