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

 


 Mot :   Pseudo :  
 
 Page :   1  2  3  4  5
Page Suivante
Auteur Sujet :

[C++ débutant] Tester si un Objet est d'un type précis ?

n°1315231
chrisbk
-
Posté le 28-02-2006 à 12:24:29  profilanswer
 

Reprise du message précédent :

ParadoX a écrit :


Et j'ai du coup, j'ai besoin du friend.


 
Non, tu fais un accesseur sur nom
 

Citation :

le monObjet->estLibre est un bool protected de Objet.


 
y sert a quo ce boolean ? au pire fait un seteur
 

ParadoX a écrit :


et ainsi de suite pour les autres classes !


 
design foireux on te dit.

mood
Publicité
Posté le 28-02-2006 à 12:24:29  profilanswer
 

n°1315233
chrisbk
-
Posté le 28-02-2006 à 12:25:10  profilanswer
 

ParadoX a écrit :

Il faut que je fasse des Get- et Set() pour toutes les données membres, sinon ?


 
pas pour toute. Deja, seulment celle qui en ont besoin, et tu fais set que la ou y'a besoin de set (genre je veux pas voir de setNom par exemple)

n°1315267
ParadoX
Posté le 28-02-2006 à 13:18:33  profilanswer
 

Hmm ok j'ai deja viré plein de friends, sauf la, je bloque:
 
quand j'ai
 

Code :
  1. // Valeur de la tête
  2. Objet Liste::valeurTete() const
  3. {
  4. if(!estVide())
  5.  return tete->valeur->getNom();
  6. else
  7.  throw -1;
  8. }


 
J'ai pas accès à "valeur", mais j'ai un getValeur(). Le probleme, c'est que getValeur()->getNom(), ça marche pas ... une idée ? :sweat:


---------------
Pier noir la mèr - La chanson par HFR Band - Topic TrueCrypt
n°1315268
slash33
Posté le 28-02-2006 à 13:20:04  profilanswer
 

C'est un peu le foutoir avec tous ces posts. Quel est le code de la classe Objet à l'heure actuelle ?

n°1315272
chrisbk
-
Posté le 28-02-2006 à 13:28:01  profilanswer
 

pis ca veut dire quoi "ne marche pas" ?

n°1315556
ParadoX
Posté le 28-02-2006 à 18:11:38  profilanswer
 

c'est corrigé, j'ai un dernier souci, puis j'aurais viré tous les friends :)
 
Alors, j'explique:
Dans Iterateur, j'ai cette fonction
 

Code :
  1. //Fait avancer l'iterateur
  2. void Iterateur::avance()
  3. {
  4. this->actuel = &((*(*actuel)).suivant);
  5. }


 
Il tape donc directement dans le .suivant, qui est un membre d'un Class Node. Maintenant, j'ai mes getSuivant, setSuivant, etc ... et si je fais ça:
 

Code :
  1. //Fait avancer l'iterateur
  2. void Iterateur::avance()
  3. {
  4. this->actuel = &((*(*actuel)).getStuivant());
  5. }


 
Il me dit "error C2102: '&' requires l-value" ...  
A quoi c'est dû ?
 
Merc :)


---------------
Pier noir la mèr - La chanson par HFR Band - Topic TrueCrypt
n°1315561
slash33
Posté le 28-02-2006 à 18:27:09  profilanswer
 

ParadoX a écrit :

Code :
  1. this->actuel = &((*(*actuel)).suivant);
  2. }



C'est quoi ce truc ?! :sweat:
 
Ce n'est pas équivalent à ça?

Code :
  1. // est-on sûr que this->actuel est toujours valide ?
  2. this->actuel = this->actuel->suivant;
  3. // oups, que se passe t-il si on est en bout de chaîne ?


Message édité par slash33 le 28-02-2006 à 18:32:57
n°1315577
ParadoX
Posté le 28-02-2006 à 18:53:14  profilanswer
 

Définition de actuel:
 

Code :
  1. //Itérateur de lecture qui ne fait que consulter une liste
  2. class Iterateur
  3. {
  4. protected:
  5.  Liste::Node **actuel;
  6.  Liste *liste;
  7. public:
  8.  Iterateur(const Liste & );
  9.  virtual ~Iterateur();
  10.  void avance();
  11.  void recule();
  12.  void retourTete();
  13.  Objet* valeur() const;
  14.  bool finDeListe() const;
  15. };


 
Dans la méthode avance(), le pointeur doit prendre l'adresse du poiteur qui pointe sur le suivant ! :/


---------------
Pier noir la mèr - La chanson par HFR Band - Topic TrueCrypt
n°1315584
slash33
Posté le 28-02-2006 à 18:58:55  profilanswer
 

Pourquoi deux niveaux d'indirection pour Liste::Node **actuel ?

n°1315601
ParadoX
Posté le 28-02-2006 à 19:32:13  profilanswer
 

Hm le prof nous avait conseillé ça, je ne sais plus exactement pourquoi ... je croi qu'il était question de revenir en arriere, d'avoir un pointeur pour "aller voir le suivant" et encore un pointeur qui reste derriere, pour une insertion par ex ... 'fin ça marche bien (:D)
 
Seulement, je ne parviens pas à changer le code en y mettant mes Get / Set. Il lui faut l'adresse du pointeur, non ?


---------------
Pier noir la mèr - La chanson par HFR Band - Topic TrueCrypt
mood
Publicité
Posté le 28-02-2006 à 19:32:13  profilanswer
 

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
ereg et donnée type coordonnées[debutant C++] [Urgent] Tableau 2D nombre de colonne inconnu
[débutant] char* + char* = concaténertester l'existence d'une réalisation d'une méthode 'pure virtual'
le type autoincremente sous sql 2000server????[URGENT] [C++ débutant] problème avec tableau a plusieurs dimensions
type date et autoincrementer ss sql server 2000[VBScript] tester un CRC d'un fichier VBS éxécuté
[!PERL] recuperation de données (pour débutant)[C++ débutant] Différence entre un New et un "Type nom" ?
Plus de sujets relatifs à : [C++ débutant] Tester si un Objet est d'un type précis ?


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