Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2822 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  declaration de Liste d'objet

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

declaration de Liste d'objet

n°279349
weed
Posté le 04-01-2003 à 18:51:18  profilanswer
 


Code :
  1. #include <iostream.h>
  2. #include <list>
  3. #include <algorithm>
  4. class baton
  5. {
  6. private :
  7.       char orientation;
  8.       std :: list<float>  coordx, coordy;
  9.       std :: list<baton>  coord;
  10. (....)
  11. };


 
voila un bout de code, j'ai voulu tenté la declaration d'une liste vide, pour l'instant, d'objet baton...
Mais cela n'a pas l'air de fonctionner, j'ai 3 erreur :
 
Info :Compiling E:\tetris\carre.cpp
Error:  list.h(93,33):Undefined structure 'baton'
Error:  list.h(93,33):Size of 'data' is unknown or zero
Error:  list.h(93,33):Undefined structure 'baton'
 
ces 3 erreurs pointent vers le fichier list au meme endroit :
 

Code :
  1. struct list_node
  2.     {
  3.         void_pointer next;
  4.         void_pointer prev;
  5.         T            data;
  6.     };


je pensais que c'etait pas bien compliquer, cela a bien fonctionner en forcant la list en int, ms des que je la force a utiliser mon objet, pas moyen...
J'ai pourtant bien verifier ds mon bouquin ms y a pas trop de detail sur les conteneurs sequentiels pour les objets maisons ..

mood
Publicité
Posté le 04-01-2003 à 18:51:18  profilanswer
 

n°279360
Captain ad​-hoc
miam les bon batonnets de tux
Posté le 04-01-2003 à 19:10:24  profilanswer
 

weed a écrit :


Code :
  1. #include <iostream.h>
  2. #include <list>
  3. #include <algorithm>
  4. class baton
  5. {
  6. private :
  7.       char orientation;
  8.       std :: list<float>  coordx, coordy;
  9.       std :: list<baton>  coord;
  10. (....)
  11. };




 
essaye de mettre une std::list<baton*> ça devrait mieux passer, parce que là c'est un peu trop récursif comme définition de type

n°279362
farib
Posté le 04-01-2003 à 19:25:28  profilanswer
 

la t'as aucune chance avec une telle définition  :heink:


---------------
Bitcoin, Magical Thinking, and Political Ideology
n°279370
Taz
bisounours-codeur
Posté le 04-01-2003 à 19:54:43  profilanswer
 

et puisqu'on y est, pas besoin non plus de .h pour iostream
 
ton problème, c'est que t'as définition est recursive, du genre "un baton, c'est une liste de baton". impossible à resoudre. parcontre "un baton, c'est une liste de référence/pointeur à d'autre baton", ça ça a du sens

n°279382
farib
Posté le 04-01-2003 à 20:18:33  profilanswer
 

++Taz a écrit :

et puisqu'on y est, pas besoin non plus de .h pour iostream
 
ton problème, c'est que t'as définition est recursive, du genre "un baton, c'est une liste de baton". impossible à resoudre. parcontre "un baton, c'est une liste de référence/pointeur à d'autre baton", ça ça a du sens


 
le paradoxe de russel : existe - t il un ensemble de tous les ensembles ?


---------------
Bitcoin, Magical Thinking, and Political Ideology
n°279384
Taz
bisounours-codeur
Posté le 04-01-2003 à 20:22:41  profilanswer
 

commence pas, y a plein d'histoire a propos des ensembles, des sous-ensembles et des partitions. c'est de la prise de tete devant tableau noir de sodomite de matheux. Ca vaut pas un bon frag  :D

n°1766231
mathematic​a
Posté le 29-07-2008 à 11:05:27  profilanswer
 

Citation :

parcontre "un baton, c'est une liste de référence/pointeur à d'autre baton", ça ça a du sens


 
 
Avez vous un support de cours qui parle de cette façon la de programmer ... en effet, j'ai un objet qui pointe vers une liste d'autres objets .... Mais je n'ai pas une très grande idée pour le moment de la façon de procéder ... je débute ts juste en orientée objet.
 
je vous remercie de votre aide
 
PS: j'ai des notions en programmartion et en algorithmique donc ne vous inkiétez pas je comprendrai si y a du code

n°1766273
Taz
bisounours-codeur
Posté le 29-07-2008 à 12:28:42  profilanswer
 

c'est pas de l'objet, c'est juste des pointeurs, des structure auto-référentielles. C'est quoi ta question ?

n°1766393
mathematic​a
Posté le 29-07-2008 à 16:04:53  profilanswer
 

ben en fait,  
j'ai une classe MaClasse qui a comme attribut une liste d'objets pointant vers elle.
 
Ex : classe personne continent la liste de tous les hommes car on suppose qu'on a trois classe classe personne, classe hommes, classse femmes, et la classe personne contient la liste de ts les hommes et la liste de toutes les femmes !!!!
 
Merci.

n°1766497
Joel F
Real men use unique_ptr
Posté le 29-07-2008 à 18:06:06  profilanswer
 

wow paye ton schéma objet foireux.
Homme et Femme héritent de Personne OK, mais c'est pas à Personne de contenir toutes les hommes & femmes, ais à une classe supplémentaire qui encapsule un conteneur de Personne*.

mood
Publicité
Posté le 29-07-2008 à 18:06:06  profilanswer
 

n°1766538
Taz
bisounours-codeur
Posté le 29-07-2008 à 20:01:54  profilanswer
 

Femme enceinte, toussa

n°1766580
Joel F
Real men use unique_ptr
Posté le 29-07-2008 à 22:58:57  profilanswer
 

lol la blague

n°1766614
mathematic​a
Posté le 30-07-2008 à 08:22:47  profilanswer
 

Bon d'accord l'exemple n'était peu être pas si bien choisi que ça ... mais il ne s'agit pas là d'une classe personne, homme et femme, et puis j'ai le droit de faire ce que je veux avec mes classes non ???
 
moi ce que je recherche c'est juste a comment déclarer une liste d'objets comme étant un attribut de la classe, cette liste d'objets provient ( relation de composition) d'une autre classe Objet ..si comme si je voulais avoir la liste de tous les hommes comme attribut dans ma classe Personne... Je ne sais pas si c un peu clair ! je ne suis pas trés familère avec l'orientée objet ...... Je vous remercie encore !

n°1766617
Un Program​meur
Posté le 30-07-2008 à 08:47:20  profilanswer
 

* Il y a une serie de choses qui ne sont pas possibles avec des types incomplets comme le sont les classes qui ont ete declarees et pas encore definies ou les classes en cours de definition.  Par exemple, il n'est pas possible de les utiliser pour les types de membre (c'est normal qu'une class Foo ne puisse pas avoir un membre de type Foo).
 
* Les conteneurs de la SL ne peuvent pas etre instancies avec des types incomplets.  Donc tu ne peux pas avoir une class Foo qui a pour membre list<Foo> car la classe n'est pas encore definie a ce moment la.  Si tu veux une liste de Foo comme membre de Foo, il va te falloir definir ta propre liste qui n'a pas cette contrainte.
 
* Si tu veux utiliser le polymorphisme d'inclusion (autrement dit pouvoir manipuler des instances de classes derivees comme ayant le type d'une de leurs classes de base), il faut passer par des pointeurs ou des references.  Donc definir ta propre liste qui n'exige pas un type complet n'est pas une solution.  Comme on ne peut pas instancier les conteneurs de la SL sur des references, tout ce que tu peux avoir comme membre de la class Foo, c'est std::list<Foo*> ou une liste de ta composition qui peut etre instanciee sur des Foo&.
 
* Si tu as a poser ce genre de question, je crains que definir tes propres listes ne soit pas immediatement possible.

n°1766646
kao98
...
Posté le 30-07-2008 à 10:27:56  profilanswer
 

mathematica a écrit :

..si comme si je voulais avoir la liste de tous les hommes comme attribut dans ma classe Personne... Je ne sais pas si c un peu clair ! je ne suis pas trés familère avec l'orientée objet ...... Je vous remercie encore !


Ce que tu veux faire ne correspond pas a ce que tu essaye de faire.
Tu veux une classe contenant une liste d'élément de cette classe, mais quand tu donnes des exemples, tu veux une classe Personne qui contient une liste d'Homme. Tu utilises toi même 2 mots clairement différents, pourquoi ne pas mettre ça en pratique et donc faire deux classes : une définissant ton objet, et une autre classe conteneur de ta première !?


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
n°1766693
mathematic​a
Posté le 30-07-2008 à 12:51:14  profilanswer
 

Citation :

Ce que tu veux faire ne correspond pas a ce que tu essaye de faire.  


 
 
Hummmm   :pt1cable:  
 
 
c'est presque ça kao98, je veux une classe qui contient une liste d'éléments d'une autre classe.
 
j'ai une classe Projet (c la classe qui porte mon projet) qui pointe vers (relation de composition) vers une autre classe Personne (par example) et je veux que mon projet contient une liste de ts les objets personne.
 
 
ESt ce que je suis clair ou est ce que c parce que je suis débutante que je n'utilise pas les bons termes !!!!!!

n°1766819
Malkav
Posté le 30-07-2008 à 16:53:40  profilanswer
 

en vite fait, tu veux un truc qui ressemble à çà ?
 

Code :
  1. class CElement
  2. {
  3. ...
  4. private:
  5.   long m_lUnMembreQuelconque;
  6. };
  7. class CEnsemble
  8. {
  9. ...
  10. private:
  11. std::list<CElement>   m_ListOfElements;
  12. std::list<CElement*> m_ListOfElementsUsingPointers;
  13. };


 
tu peux include des listes d'éléments, des tableaux d'élements, des éléments, des pointeurs vers des éléments, tout ce que tu veux ou presque dans la classe CEnsemble, mais évidemment un Ensemble ne peut PAS contenir d'autres ensembles, il peut par contre contenir des pointeurs vers d'autres ensembles, exemple :
 

Code :
  1. class CEnsemble
  2. {
  3. ...
  4. private:
  5.   ...
  6. std::list<CEnsemble*> m_SousEnsembles;
  7. };


Message édité par Malkav le 30-07-2008 à 17:00:41
n°1767058
Taz
bisounours-codeur
Posté le 30-07-2008 à 23:13:21  profilanswer
 

C'est bon tous ces C

n°1767192
Malkav
Posté le 31-07-2008 à 11:27:41  profilanswer
 

Taz a écrit :

C'est bon tous ces C


hu ?
si c'est pour mes noms de classe, c'est l'influence des règles de codage de ma boîte  :o

Message cité 1 fois
Message édité par Malkav le 31-07-2008 à 11:28:22
n°1767196
Joel F
Real men use unique_ptr
Posté le 31-07-2008 à 11:37:03  profilanswer
 

Malkav a écrit :


hu ?
si c'est pour mes noms de classe, c'est l'influence des règles de codage de ma boîte  :o


 
change de boite :o

n°1767259
mathematic​a
Posté le 31-07-2008 à 13:25:54  profilanswer
 

oui Malkav, ton premier code est celui que je cherche a faire .... en Gros il s'agit donc d'une liste chainée où chaque élément de la liste pointe vers le suivant.

n°1767270
Malkav
Posté le 31-07-2008 à 13:46:46  profilanswer
 

std::list c'est effectivement une ... liste, doublement chaînée puisque tu peux progresser dans les deux directions.A moins que tu ne veuilles recoder une liste chaînée de tes éléments?
 
Joel : ben quoi que j'appelle mes classes CBidule çà change pas grand chose :p


Message édité par Malkav le 31-07-2008 à 13:47:18
n°1767347
mathematic​a
Posté le 31-07-2008 à 15:56:30  profilanswer
 

recoder une liste chainée de mes éléments ????????

n°1767446
Joel F
Real men use unique_ptr
Posté le 31-07-2008 à 19:12:08  profilanswer
 

mathematica a écrit :


Bon d'accord l'exemple n'était peu être pas si bien choisi que ça ... mais il ne s'agit pas là d'une classe personne, homme et femme, et puis j'ai le droit de faire ce que je veux avec mes classes non ???


 
non, sauf si t'aime écrire du code de merde.
La POO c'est pas du tirage aléatoire et du petit bonheur la chance. Faut réfléchir 2s aux concepts que tu essaye de modéliser :/

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  declaration de Liste d'objet

 

Sujets relatifs
déclaration variable, chaine de caractère[JS] PB avec la valeur d'une liste
fichiers cobol et liste de chansonsqueue de messages : liste chainé
[PHP] + [JS] Concaténé pour la déclaration d'une variable JS[open gl]comment afficher un objet qui est dans un fichier 3D s max?
[C] Liste chainée que j'arrive pas à parcourir [resolu]amateurs de pointage vers objet??!! venez ici! spa pour les fiottes!
question bete : probleme dans la déclaration d'un tableauComment récupérer la liste des utilisateurs d'un domaine Windows ?
Plus de sujets relatifs à : declaration de Liste d'objet


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR