C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Probleme d'appel de variable séparé dasn plusieur fichier ..

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French)
View previous topic :: View next topic  
Author Message
Trident
Guest





PostPosted: Sat Jul 03, 2004 9:29 pm    Post subject: Probleme d'appel de variable séparé dasn plusieur fichier .. Reply with quote



Bonjour à tous,

Je programme un jeu en C++/OpenGl depuis deux semaines et comme je suis
autodidacte, viens un moment ou de gros probleme arrive.

En fait, je suis en train de faire une console, elle marchait trés bien
jusqu'a ce que je déplace son code dans un nouveau fichier.

En simplifiant mon probleme, voilà ou j'en suis.
J'ai un type d'objet qui s'appel Menu, déclarer et spécifier dans menu.h et
menu.c
tout en haut de menu.c aprés include menu.h, j'ai list<Menu*> menu_list;
et dans le constructeur il est écrit menu_list.push_front(this);
autrement dit à chaque fois que je créé un Menu, son adresse est ajouter à
la liste des menu existant.
Jusque là tout va bien.
Pour faire ma console, j'ai besoin d'un Menu_barre_v qui dérive de Menu,
donc dans console.c j'écris :
Menu_barre_v cons_barre_v;


Je compile .... je lance ... et plantage, gdb me dit que c'est au moment de
l'ajout dans la liste !!


en fait, il n'y a pas de raison que la liste soit créée avant cons_barre_v
puisqu'il sont tout les deux à un meme nivo (en tete)..
j'en ai déduit que j'essayé de créer le menu avant la liste d'ou plantage...
le pire c'est que si je demande la création du menu dans un autre fichier du
programme, ca marche (le fichier ou j'avais mis la console à l'origine).

Ma question est donc : comment faire pour que l'en téte de fichier soit
executer avant l'en tete d'un autre.

A.c:
***************
int i;
***************

B.c:
***************
int j;
***************


comment faire pour que i soit créé avant j ou vise versa ?!?

Merci d'avance pour votre aide,
Pierre.


Back to top
Fabien LE LEZ
Guest





PostPosted: Sat Jul 03, 2004 10:09 pm    Post subject: Re: Probleme d'appel de variable séparé dasn plusieur fichie Reply with quote



On Sat, 3 Jul 2004 23:29:14 +0200, "Trident"
<astro.trident (AT) wanadoo (DOT) fr>:

Quote:
A.c:
int i;

B.c:
int j;

comment faire pour que i soit créé avant j ou vise versa ?!?

Si je ne m'abuse, ce n'est pas possible, du moins pas directement.

D'une manière générale, les variables globales sont déconseillées de
toutes façons.

J'avoue ne pas connaître la méthode "officielle" pour ce genre de
problèmes, mais je crois que cette méthode fonctionne :


typedef std::set <Machins*> ListeMachins;
static ListeMachins *liste_machins= 0;

void AjouteMachin (Machin* m)
{
if (liste_machins == 0)
{
liste_machins= new ListeMachins;
}
liste_machins.insert (m);
}

void EnleveMachin (Machin* m)
{
if (liste_machins != 0)
{
ListeMachins::iterator it= liste_machins.find (m);
if (it != liste_machins.end())
{
liste_machins.erase (it);
}
if (liste_machins.empty())
{
delete liste_machins;
liste_machins= 0;
}
}
}

Et, bien entendu, les constructeurs de Machin doivent appeler
AjouteMachin(), et le destructeur de Machin doit appeler
EnleveMachin().


--
schtroumpf schtroumpf
Jean-Emile de France

Back to top
Trident
Guest





PostPosted: Sat Jul 03, 2004 10:29 pm    Post subject: Re: Probleme d'appel de variable séparé dasn plusieur fichie Reply with quote



Merci pour ta réponse,

effectivement, j'ai regardé dans mon Stroustrup et y dit que il faut le
faire, c'est pas propre...

Je l'avoue, ca m'emmerde un peu, mais g réussi à faire sans.


Back to top
Fabien LE LEZ
Guest





PostPosted: Sat Jul 03, 2004 10:42 pm    Post subject: Re: Probleme d'appel de variable séparé dasn plusieur fichie Reply with quote

On Sun, 4 Jul 2004 00:29:15 +0200, "Trident"
<astro.trident (AT) wanadoo (DOT) fr>:

Quote:
mais g réussi

Ecrire les mots en entiers serait fort apprécié. Merci d'avance.


--
schtroumpf schtroumpf
Jean-Emile de France

Back to top
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.