include de librairie et conseil sur structure de main [C++] - C++ - Programmation
Marsh Posté le 26-09-2004 à 13:19:17
rien compris. mais tant que t'as pas mis un gardien contre l'inclusion multiple, va pas chercher ailleurs
Marsh Posté le 26-09-2004 à 13:21:56
voir donc du coté des #define #ifdef etc...
Marsh Posté le 26-09-2004 à 14:00:33
#ifndef MACHINTRESUNIQUE
#define MACHINTRESUNIQUE
// code
#endif // MACHINTRESUNIQUE
pour la dernière fois ... MACHINTRESUNIQUE c'est un truc le plus unique possible. concatén tout ce que tu as : nom de fichier, projet, date, auteur, truc aléatoire
genre
GD_RENDERER_H_26_SEPT_2004
mais pas de LIST_H (pense aux millions de gens qui ont un jour fait un fichier list.h ...)
tu peux facilement te faire un petit script qui génère ce genre de squelette
Marsh Posté le 26-09-2004 à 14:02:07
Taz a écrit : rien compris. mais tant que t'as pas mis un gardien contre l'inclusion multiple, va pas chercher ailleurs |
dans mon main j'ai 50 lignes de code, qui fait 3 traitements. Ca vaut la peine que j'en fasse 3 fonctions où c'est acceptable de tout laisser directeent dans le main?
gardien contre l'inclusion multiple -> kesako? je me doutais qu'il fallait utiliser des ifdef et ifndef mais jsavais pas trop comment (faut que jme place une constante dans mon segment.h et point.h et que je vérifis si celle-ci est déclaré?)
edit: tu viens de poster un truc pendant que j'écrivais, je regarde ca
Marsh Posté le 26-09-2004 à 14:07:02
ça vaut la peine de séparer en fichier ? je sais pas, mais ne serait-ce que pour apprendre à le faire, oui
inclusion multiple : ben si un .h est incluse plusieurs fois, ça contredit la ODR (one definition rule). Ton compilateur rejète le fait qu'une structure de données soit définie plusieurs fois dans la meme unité de compilation.
Marsh Posté le 26-09-2004 à 14:08:38
Taz a écrit : ça vaut la peine de séparer en fichier ? je sais pas, mais ne serait-ce que pour apprendre à le faire, oui |
tu voulais bien dire en fonction?
Marsh Posté le 26-09-2004 à 14:49:42
Taz a écrit : je comprends pas |
ok
j'ai mon main qui fait 3 trucs
- Récupérer un nom de fichier (si recu en parametre, il l'utilise, sinon je demande à l'utilisateur)
- Lire le fichier, stocker tous les segments dans un vector
- Traiter le vector (vérifier quel segment s'intersecte avec un autre, en utilisant une methode de mon objet segment)
le tout fait 50 lignes voir moins, ca vaut la peine que je fasse 3 fonctions
- get_nom_de_fichier
- lecture_du_fichier
- traiter_les_segments
ou laisser ca dans le main c'est acceptable
Marsh Posté le 26-09-2004 à 14:54:29
au vu de ton énoncé de sujet et de ce que tu viens de dire tu confonds fonction et fichier inclus
Marsh Posté le 26-09-2004 à 14:55:43
mais ça dépend de ce que tu veux faire ... si c'est un simple programme de 3 lignes, ça va, si tu veux faire une bibliothèque, un gros projet modulaire, etc non
je vois pas ce que ça change pour toi, à par que tu te prends la tête avec des conneries 'est-ce que je demande un sac plastique supplémentaire à la caissière ....'
Marsh Posté le 26-09-2004 à 15:59:05
black_lord a écrit : au vu de ton énoncé de sujet et de ce que tu viens de dire tu confonds fonction et fichier inclus |
bin javais 2 demandes au départ:
diviser mon main en 3 fonctions, c'est plus sympa ou non pour un prof?
fichier inclus à 2 endroits, comment faire (avec les ifdef)
mais comme Taz a dit, jcrois que je m'embête pour rien pour le premier, vu que y'a tellement pas de code que ca sert pas à grand chose
Marsh Posté le 26-09-2004 à 20:11:42
jviens de bencher les 2 binaires du prof avec le mien
|
son Sseg1 utilise le même algo que nous (glouton), alors que Sseg2 a un algo sweep line, c'est assez clair que ca bouffe l'autre
mais jsuis quand même heureux de voir qu'avec le même algo, mon tp est quand meme plus rapide
Marsh Posté le 26-09-2004 à 04:29:04
j'ai terminé un travail que j'aimerais paufiner un peu avant de le remettre. En gros j'ai 2 trucs qui me chicote l'esprit:
le main s'occupe présentement de récupérer (par paramètre si présent ou par cin) un nom de fichier, de lire les segments dans se fichier et les stocker dans un vecteur, puis faire le traitement sur le vecteur (double boucle for + if + cout)
le tout prend environ 50 lignes, ca vaut la peine que j'en fasse 3 fonctions ou de tout laisser dans le main est acceptable?
exemple: dans mon tp1.cc, j'ai les includes suivants
dans mon segment.h
si je tente de faire l'include du point.h dans mon tp1.cc, ca cause l'erreur suivante
In file included from segment.h:2,
from tp1.c:37:
point.h:4: error: redefinition of `class Point'
point.h:4: error: previous definition of `class Point'
alors
a) j'include dans mon tp1.cc mais pas dans segment.h
b) j'include dans segment.h mais pas dans tp1.cc
c) j'include dans les 2 avec une méthode X (un ifndef? ca peut marcher? comment? autres facon?)
edit: le segment.cc utilise 2 objets Point pour se créer. J'utilise également un objet Point dans mon tp1.cc (Point intersection), qui sera passé par référence à une méthode d'objet Segment (sIntersecteAvec) et c'est pourquoi je voulais faire l'include du point.h dans le tp1.cc aussi
merci
Message édité par burgergold le 26-09-2004 à 04:33:58