TutorielsVous débutez ? C'est ici qu'on commence !
Mon compte
Recherche
Livre d'or
PublicitéVous devez être inscrit pour pouvoir poster des messages
| Page : 1 | |||||||||
| Auteur | Message | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| 1 visiteur sur ce sujet (1 anonyme) | |||||||||
| Page : 1 | |||||||||
Aravis
|
# Posté le 25/07/2008 à 11:57:56 | ||||||||
apt-get install Windows![]() Groupe : Membres |
Bonjour,
Un problème bien compliqué (ou pas). J'ai un objet (type : MilieuExterieur) depuis lequel je crée un autre objet (type : Celulle). Or ma celulle a besoin des attributs du milieu pour marcher. ![]() L'idée serait de créer un objet milieu statique comme en java (dixit mon ami). L'héritage est hors de question pour différentes raisons. comment faire ? merci ![]() Sauvez moi : faites un effort et laissez moi un peu de banquise. Ne polluez pas pour rien. Merci. Bébé nounours |
||||||||
askerat
|
# Posté le 25/07/2008 à 13:24:19 | ||||||||
|
Groupe : Membres |
Si je comprends bien, ta classe MilieuExterieur contient une ligne Cellule *cell = new Cellule(); ?
Et cet objet cell a besoin des attributs de MilieuExterieur ? T'as pas beaucoup d'options, soit tu crées un lien d'amitié éventuellement, soit tu fournis à Cellule une référence de MilieuExterieur, soit tu nous en dis un peu plus sur la chose, car à mon avis y'a un hic au niveau du design. Faudrait peut être revoir les responsabilitées des objets, et voir si il faut obligatoirement passer par ça, il faut peut être ajouter une entitée à l'histoire. |
||||||||
wissam42
|
# Posté le 25/07/2008 à 13:31:14 | ||||||||
La marijuana c'est mal !![]() Groupe : Membres |
depuis cellule tu crée un objet type milieu exterieur que tu nomme m_parent et qui point vers le parent.
code : Code : C++
Code : C++
Code : C++
voila debrouille toi avec sa aprés pour acceder o atribut tu fera m_parent->getTonAttibut() ![]() Ds ce cas il n'est aucunement question d'heritage tu crée simplement un pointeur m_parent qui pointe vers l'objet qui l'a crée et a partir de ce pointeur tu peut acceder aux attibuts et aux methodes de la classe qui l'a crée. Si il y a quelque chose que tu ne trouve pas clair n'hesite pas a poser des questions.
Édité
le 25/07/2008 à 13:35:03
par wissam42
|
||||||||
Aravis
|
# Posté le 25/07/2008 à 15:53:53 | ||||||||
apt-get install Windows![]() Groupe : Membres |
pour mieux comprendrea l'heure actuelle je crée un milieu dans ma celulle (a defaut de mieux). Code : C++
et je crée une cellule dans ma fenêtre principale Code : C++
Mais la cellule utilise des choses dans le milieu (et ca marche puisque le milieu a été créé dans la cellule) Code : C++
Mais le probleme c'est que si je crée plusieurs cellule elle sont dans plusieurs milieu. Or (comme en vrai) elle doivent toute est dans le meme milieu. Pour faire ca j'ai créé un milieu dans la fenêtre principale est j'ai créé les cellules dans le milieu. Mais ça ça ne marche pas car dans ce cas je ne peux plus acceder au milieu. Code : C++
Ca ne marche plus. Milieu est inaccessible (je sais pas faire en tout ca). deux shemas qui je l'espere seront parlant (c'est pas des shemas d'héritage hein ): ce que j'ai : http://img440.imageshack.us/img440/2033/classzv1.png ce que je voudrais : http://img501.imageshack.us/img501/5254/class1dc2.png wissam42 >> Non ca peux pas marcher. Une fois qu'on a envoyer milieu dans la cellule le milieu est le milieu de la cellule. La cellule va le modifier etc... un autre cellule aura de base le meme milieu mais le modifira autremenent. Ce sera donc deux milieu differents. Tu me suis ?
![]() Sauvez moi : faites un effort et laissez moi un peu de banquise. Ne polluez pas pour rien. Merci. Bébé nounours |
||||||||
bombadil
|
# Posté le 25/07/2008 à 17:00:36 | ||||||||
![]() Groupe : Membres |
Citation : Aravis
wissam42 >> Non ca peux pas marcher. Une fois qu'on a envoyer milieu dans la cellule le milieu est le milieu de la cellule. La cellule va le modifier etc... un autre cellule aura de base le meme milieu mais le modifira autremenent. Ce sera donc deux milieu differents. Tu me suis ? C'est pour cela qu'il te propose d'utiliser un pointeur. Par contre, tu ne dois pas utiliser new, le constructeur de cellule doit recevoir en paramètre un pointeur vers MilieuExterieur. Si tu "modifie" le pointeur, tu modifie l'objet pointé. |
||||||||
Aravis
|
# Posté le 25/07/2008 à 17:29:32 | ||||||||
apt-get install Windows![]() Groupe : Membres |
Code : C++ - fenPrincipale.cpp
Code : C++ - fenPrincipale.h
Code : C++ - cellule.cpp
Code : C++ - cellule.h
j'en suis là mais ca compile pas (mais pas de msg d'erreur) :
![]() Sauvez moi : faites un effort et laissez moi un peu de banquise. Ne polluez pas pour rien. Merci. Bébé nounours |
||||||||
wissam42
|
# Posté le 26/07/2008 à 13:06:00 | ||||||||
La marijuana c'est mal !![]() Groupe : Membres |
mon astuce marche ! j'ai programmé un sudoku : un objet grille qui possede 81 objet cases ! Chaque objet case peut utiliser des attribut(via des accesseurs) et des méthodes de ma classe grille car il ont tous un pointeur (m_parent) du type grille qui pointe vers la grille qui les a créé !
PS : ds ton shemas c'est milieu exterieur qui crée les cellules or ds ton code c'est fenetre principale ! PS 2 : je pense savoir d'ou viens ton probleme ! As-tu inclu les fichiers milieurexterieur.h et cellule.h ds fenetre principale ?
Édité
le 26/07/2008 à 13:09:26
par wissam42
|
||||||||
Aravis
|
# Posté le 26/07/2008 à 17:30:18 | ||||||||
apt-get install Windows![]() Groupe : Membres |
Citation : wissam42
mon astuce marche ! J'en doute pas ! Il faut juste que j'arrive a la mettre en place pour mon programme. C'est ca le problème Citation : wissam42 PS 2 : je pense savoir d'ou viens ton probleme ! As-tu inclu les fichiers milieurexterieur.h et cellule.h ds fenetre principale ? Il manquait un include de milieuExt.h dans fenPrincipale.h mais ca a pas changé grand chose. Code : Console
Édité
le 26/07/2008 à 17:41:40
par Aravis
![]() Sauvez moi : faites un effort et laissez moi un peu de banquise. Ne polluez pas pour rien. Merci. Bébé nounours |
||||||||
nov02
|
# Posté le 26/07/2008 à 18:05:15 | ||||||||
On vit pour ne pas être seul![]() Groupe : Membres |
Tu as bien mis la prédéclaration du constructeur ? un #include "Cellule.h" dans le Cellule.cpp ?
> Avoir pour Donner, > Apprendre pour enseigner, > Vivre pour aimer. > > Je suis p'tet' bien qu'un p'tiot jeun' d'merd' au final hein < < bah dit pas ça voyons ... |
||||||||
Aravis
|
# Posté le 26/07/2008 à 18:30:03 | ||||||||
apt-get install Windows![]() Groupe : Membres |
Edit 3 : Ca compile enfin
. Mais quand je lance le programme j'ai le droit a : "le programme a cesser de fonctionner windows cherche une solution au probleme" D'ou ca peut venir ?
Édité
le 26/07/2008 à 22:29:10
par Aravis
![]() Sauvez moi : faites un effort et laissez moi un peu de banquise. Ne polluez pas pour rien. Merci. Bébé nounours |
||||||||
wissam42
|
# Posté le 27/07/2008 à 15:03:46 | ||||||||
La marijuana c'est mal !![]() Groupe : Membres |
montre moi tout ton code.
|
||||||||
Retour au forum "Langage C++" ou à la liste des forums
Vous devez être inscrit pour pouvoir poster des messages
Changer de design |
En savoir plus |
Plan du site |
Politique d'accessibilité |
Règles |
RSS tutoriels |
RSS news
Édité par Simple IT SARL :
Nous contacter
| Notre blog | Revue de presse | Publicité
Y'a plus rien à lire, faut remonter maintenant !
Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.
267 Zéros connectés |
9 requêtes |
0.2857s (0.2659s)
