Problème c++ fonction contenant une structure
Résolu
Pierre
-
Carri€ Messages postés 41 Statut Membre -
Carri€ Messages postés 41 Statut Membre -
Je ne comprend pas :
-------------------------------
int main()
{
int test;
test=1;
void fct(int &);
fct(test);
return 0;
}
void fct(int & test)
{
}
-------------------------------
là je crée une variable test qui est intriduite dans la fonction, tout marche bien.
Mais si je le fais avec une structure :
-------------------------------
int main()
{
struct homme
{
int age;
char sexe;
};
homme test;
test.age=1;
test.sexe='m';
void fct(struct &);
fct(test);
return 0;
}
void fct(struct & test)
{
}
-------------------------------
Ca ne marche pas .
Pouvez-vous me dire pourquoi ? Où ce que j'ai mal fait ?
-------------------------------
int main()
{
int test;
test=1;
void fct(int &);
fct(test);
return 0;
}
void fct(int & test)
{
}
-------------------------------
là je crée une variable test qui est intriduite dans la fonction, tout marche bien.
Mais si je le fais avec une structure :
-------------------------------
int main()
{
struct homme
{
int age;
char sexe;
};
homme test;
test.age=1;
test.sexe='m';
void fct(struct &);
fct(test);
return 0;
}
void fct(struct & test)
{
}
-------------------------------
Ca ne marche pas .
Pouvez-vous me dire pourquoi ? Où ce que j'ai mal fait ?
A voir également:
- Problème c++ fonction contenant une structure
- Fonction si et - Guide
- Logiciel calcul structure bois gratuit - Télécharger - Architecture & Déco
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Structure d'un rapport de stage - Guide
7 réponses
je crois que ton probleme c'est que ta déclaration de fonction et t'as défintion devrait etre
void fct(struct homme &test)
et non
void fct(struct &test)
je suis pas sur mais c'est peut-etre ca...
essaye ca comme ca, et redonne nous en des nouvelles...
void fct(struct homme &test)
et non
void fct(struct &test)
je suis pas sur mais c'est peut-etre ca...
essaye ca comme ca, et redonne nous en des nouvelles...
Je suis sous linux, j'utilise le compilateur g++ et j'écris avec vi .
J'ai essayé de faire ce que tu m'a dis, mais ça ne marche toujours pas .
Voici le message d'erreur que j'ai reçu :
Dans function « int main() »:
14: error: fonction non locale «void fct(main()::homme&)» utilise un type
local « main()::homme »
J'ai essayé de faire ce que tu m'a dis, mais ça ne marche toujours pas .
Voici le message d'erreur que j'ai reçu :
Dans function « int main() »:
14: error: fonction non locale «void fct(main()::homme&)» utilise un type
local « main()::homme »
salur, en fait ta structure est locale a main et donc depuis l'extérieur personne ne peut le voir. Et donc ta declaration dehors void fct (struct homme&) ne peut marcher. Je ne sais pas si je me suis fait comprendre.
Une derniére chose, j'ai remarqué q depuis q tu programmes (en tout cas depuis q je t'ai remarque sur ce site) tu mets tes déclarations de type ds les fcts, non seulement c'est vilain et est deconseille maizs en plus on n'est plus a l'air des compilos de l'age de pierre.
Une derniére chose, j'ai remarqué q depuis q tu programmes (en tout cas depuis q je t'ai remarque sur ce site) tu mets tes déclarations de type ds les fcts, non seulement c'est vilain et est deconseille maizs en plus on n'est plus a l'air des compilos de l'age de pierre.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Je poursuis sur la question de mary.
Dans sa fonction
void fonction (homme& )
{
}
Comment peut-on acceder aux membre de la strucuture homme?
par exemple, si je veux modifier l'age de ma structure passer en argument:
du main j'apel "fonction(test);"puis
void fonction (homme&)
{
homme.age = 26;
}
//ce qui reviendrai a faire test.age=26;
Pourquoi n'est ce pas correcte?
Je poursuis sur la question de mary.
Dans sa fonction
void fonction (homme& )
{
}
Comment peut-on acceder aux membre de la strucuture homme?
par exemple, si je veux modifier l'age de ma structure passer en argument:
du main j'apel "fonction(test);"puis
void fonction (homme&)
{
homme.age = 26;
}
//ce qui reviendrai a faire test.age=26;
Pourquoi n'est ce pas correcte?
//declarer la structure:
struct homme
{
int age;
char sexe;
};
//puis la fonction:
void fonction (struct homme *h);
//dans main:
struct homme Untel; //declaration de Untel de type structure homme
fonction (& Untel);
//apres le main
void fonction(struct homme *h)
{
h->age =26;
}
//ainsi age de tel est devenu 26!!
voilà c'est résolu!!!!!mais je ne suis pas auteur du message pour le poster. :o(
struct homme
{
int age;
char sexe;
};
//puis la fonction:
void fonction (struct homme *h);
//dans main:
struct homme Untel; //declaration de Untel de type structure homme
fonction (& Untel);
//apres le main
void fonction(struct homme *h)
{
h->age =26;
}
//ainsi age de tel est devenu 26!!
voilà c'est résolu!!!!!mais je ne suis pas auteur du message pour le poster. :o(