le destructeur est il executé a chaque boucle ?

le destructeur est il executé a chaque boucle ? - C++ - Programmation

Marsh Posté le 21-06-2003 à 23:40:42    

voilou je m'explique, j'utilise ma fonction display en opengl.
cette fonction indefinniment pour afficher constamment les changement a l'ecran ...
 
dans cette boucle je declarre des objets, je sais il faudrait que je m'arrange autrement soit en appellant le constructeur uniquement dans mon main() ou en declarant l'objet en dehors en tant que variable global (mais c'est pas tres propre)
 

Code :
  1. for (;;)
  2. {
  3.   carre t(0.1,0.2);
  4. }


est que le destructeur est appellé a chaque fois ?

Reply

Marsh Posté le 21-06-2003 à 23:40:42   

Reply

Marsh Posté le 21-06-2003 à 23:43:57    

ben ouais
pkoi tu le declares pas en dehors de ta boucle ?

Reply

Marsh Posté le 21-06-2003 à 23:56:22    

bahh en tant que variable global c'est pas propre du tout  
et dans le main apres c'est prise de tete pour faire passer les variables, objet ds : glutDisplayFunc(display);
 
tu fais comment ???

Reply

Marsh Posté le 21-06-2003 à 23:59:45    

bah j'en sais rien, deja pas du global, mais la vu que ta variable n'est utilisé que dans la boucle, qu'st ce que ca change de la declarer en dehors ?

Reply

Marsh Posté le 22-06-2003 à 00:06:25    

bahh je sais pas lol  
 
j'ai ma fonction display  

Code :
  1. void display (void)
  2. {
  3. }


qui est appellé par  

Code :
  1. glutDisplayFunc(display);


ds le main ....
 
le probleme je sais pas trop si je peux rajouter des parametres, non en principe :( car normallement je pense que son prototype est :
glutDisplayFunc(* ft);

Reply

Marsh Posté le 22-06-2003 à 00:06:55    

heuh, et ben ?

Reply

Marsh Posté le 22-06-2003 à 00:13:11    

et bien je pense que c'est que c'est pour cette raison que les sources que j'ai regardé sont programmé comme " des petits cochons"   :lol: :wahoo:

Reply

Marsh Posté le 22-06-2003 à 04:30:30    

oui mais qu'est-ce qui t'empeche de le mettre en dehors de ta boucle for ??
 

Citation :

et bien je pense que c'est que c'est pour cette raison que les sources que j'ai regardé sont programmé comme " des petits cochons"   :lol: :wahoo:


 
Ben.. euh.. ca va bien ??
 
weed = herbe non en anglais.. ?
tu n'en as pas abusé un peu?
 
LeGreg

Reply

Marsh Posté le 22-06-2003 à 09:05:47    

lol je viens de repondre à http://forum.hardware.fr/forum2.ph [...] ubcat=#bas
 
legreg, repond moi franchement, as tu deja devellopé avec glut/opengl ?  
 
je ne pense pas car lol tu n'as pas l'air de comprendre  
 

Code :
  1. //variable global
  2. carre t;
  3. void display (void)
  4.   { 
  5.        //affichage des objets     
  6.        t.affiche(); //t s'affiche a l'ecran  
  7.       glutPostRedisplay();
  8.   }
  9. main ()
  10. {
  11.    t.affiche(); //t ne s'affiche pas à l'ecran
  12.    glutDisplayFunc(display);
  13. }


Message édité par weed le 22-06-2003 à 09:06:01
Reply

Marsh Posté le 22-06-2003 à 09:08:05    

weed a écrit :

lol je viens de repondre à http://forum.hardware.fr/forum2.ph [...] ubcat=#bas
 
legreg, repond moi franchement, as tu deja devellopé avec glut/opengl ?  
 


 
oui et où est ta boucle for ?
 
LeGreg

Reply

Marsh Posté le 22-06-2003 à 09:08:05   

Reply

Marsh Posté le 22-06-2003 à 09:15:48    

ca est l'equivalent d'une boucle for, on rappelle a chaque fois la fonction d'affichage. cela permet de mettre a jour constamment l'affichage de l'ecran
 

Code :
  1. void display (void)
  2.     { 
  3.            //affichage des objets     
  4.            t.affiche(); //t s'affiche a l'ecran   
  5.           glutPostRedisplay();
  6.     }


   
 

Citation :

weed = herbe non en anglais.. ?  
tu n'en as pas abusé un peu?


lol au début je ne savais ce que voulais dire ce mot la en anglais. j'ai choisis weed par hasard, diminutif de weedman.
 
oki alors si tu as déja dvpé en opengl.
 
 
 

Reply

Marsh Posté le 22-06-2003 à 09:25:06    

weed a écrit :

ca est l'equivalent d'une boucle for, on rappelle a chaque fois la fonction d'affichage. cela permet de mettre a jour constamment l'affichage de l'ecran
 

Code :
  1. void display (void)
  2.     { 
  3.            //affichage des objets     
  4.            t.affiche(); //t s'affiche a l'ecran   
  5.           glutPostRedisplay();
  6.     }




 
Ok c'etait un peu tiré par les cheveux, je voyais pas trop le rapport entre la question et glut..
 
Pour ce qui est de la construction de GLUT, elle a ete pensé en C et n'est pas destiné à etre un point de départ d'un framework complet.
 
Pour ce qui est de ne pas reconstruire carré, rien ne t'empeche dans un premier temps de le définir en static dans ta fonction ou en global comme tu l'as fait.
 
Mais si ça devient complexe ça ne vas pas etre viable d'avoir une liste d'objets declarés en global comme ça. Il va falloir penser a designer un scene graph ou un truc du meme genre qui va définir ton monde et les transformations entre la caméra et les objets.
 
Pour voir a quoi ressemble un moteur de rendu "haut niveau" et pensé en terme de programmation objet va voir le source d'Orion 3d:  
http://cvs.sourceforge.net/cgi-bin [...] i/orion3d/
 
LeGreg

Reply

Marsh Posté le 24-06-2003 à 17:14:54    

g pas tout compris ?!?
 
un appel de fonction devient l'equivalent d'une boucle for ?


---------------
-( BlackGoddess )-
Reply

Marsh Posté le 24-06-2003 à 17:23:09    

Code :
  1. glutPostRedisplay()

rappelle glutDisplayFunc(display) qui est un pointeur de fonction qui a son tour rappel la fonction redisplay
 
dc glutPostRedisplay() rappelle la fonction display dc l'equivalent d'une boucle for (;;) ou while (1) { }
   

Code :
  1. void display (void)
  2.    { 
  3.           //affichage des objets     
  4.           t.affiche(); //t s'affiche a l'ecran   
  5.          glutPostRedisplay();
  6.    }

 
   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed