Rechercher : dans
Par :

Problème c++ fonction contenant une structure

Dernière réponse le 25 oct 2007 à 16:10:16 Pierre, le 29 jan 2005 à 19:34:06 
 Signaler ce message aux modérateurs

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 ?

Meilleures réponses pour « Problème c++ fonction contenant une structure » dans :
Les inlines en C++ VoirSignification Exemple 1 Inline et headers Exemple 2 Signification Le mot-clé inline est utilisé en C++ et s'applique à une fonction. Il indique au compilateur que chaque appel à la fonction inline devra être remplacé par le corps de cette...
La compilation et les modules en C et en C++ VoirCet article a pour vocation d'introduire les notions de bases de la compilation en C et en C++ et de la programmation modulaire. Il permet de mieux comprendre les messages d'erreur du compilateur. Les notions abordées ici sont indépendantes du...
Générer des nombres aléatoires efficacement avec rand() VoirGénérer des nombres aléatoires efficacement avec rand() Vous avez peut-être remarqué qu'en C, en utilisant la fonction rand() de la bibliothèque standard, vous obtenez des résultats décevants, trop souvent les mêmes. Prenons un exemple, vous...
Les structures en langage C++ VoirDifférence entre une structure et un tableau Un tableau permet de regrouper des éléments de même type, c'est-à-dire codés sur le même nombre de bits et de la même façon. Toutefois, il est généralement utile de pouvoir rassembler des éléments de...
Langage C - Les structures conditionnelles VoirQu'est-ce qu'une structure conditionnelle ? On appelle structure conditionnelle les instructions qui permettent de tester si une condition est vraie ou non. Ces structures conditionnelles peuvent être associées à des structures qui se répètent...
Langage C++ - Les fonctions VoirLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs parties du...

1

CORBnet, le 29 jan 2005 à 19:52:02

C'est coi ton compilo ??
ton environnement ??

Répondre à CORBnet

2

etienne, le 29 jan 2005 à 19:57:58

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...

Répondre à etienne

3

Pierre, le 30 jan 2005 à 10:58:10

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 »

Répondre à Pierre

4

tafiscobar, le 30 jan 2005 à 13:11:52

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. tafiscobar "lou waye def bopame"
la nullite n'existe pas, l'ignorance oui, ah je suppose!!!

Répondre à tafiscobar

5

mary, le 8 fév 2007 à 13:26:35

Comment on peut acceder aux champs?

Répondre à mary

6

Carri€, le 25 oct 2007 à 11:30:01

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?

Répondre à Carri€

7

 Carri€, le 25 oct 2007 à 16:10:16

//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(

Répondre à Carri€