Tableaux et classes c++
Résolu
seabust
Messages postés
741
Date d'inscription
Statut
Membre
Dernière intervention
-
seabust Messages postés 741 Date d'inscription Statut Membre Dernière intervention -
seabust Messages postés 741 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je développe un programme en c++, j'ai un objet de classe carte qui a un attribut contenu qui contient un tableau bi-dimensionnel (x,y) contenant des objets de classe Zone.
or je n'arrive pas, par une methode de l'objet carte pouvoir modifier les attributs d'un objet Zone voulu. car je pe retrouve avec des copies de ces objets.
Je vous joint la methode permettant de renvoyer un objet Zone voulu:
j'ai déja éssayé d'utiliser des pointeurs mais j'obtient l'erreure suivante:
Je développe un programme en c++, j'ai un objet de classe carte qui a un attribut contenu qui contient un tableau bi-dimensionnel (x,y) contenant des objets de classe Zone.
or je n'arrive pas, par une methode de l'objet carte pouvoir modifier les attributs d'un objet Zone voulu. car je pe retrouve avec des copies de ces objets.
Je vous joint la methode permettant de renvoyer un objet Zone voulu:
Zone Carte::get_zone(int x , int y) { Zone &case=contenu[x][y]; return case; }
j'ai déja éssayé d'utiliser des pointeurs mais j'obtient l'erreure suivante:
conversion from 'Zone*' to non-scalar type 'Zone' requested
A voir également:
- Citez un des logiciels lui permettant de faire des calculs sur des tableaux de nombres (tableur).
- Roland souhaite calculer le montant total des ventes de son magasin. le fichier contient, pour chaque produit, la quantité vendue et le prix unitaire. calculez le montant total des ventes. ✓ - Forum Excel
- Logiciel de sauvegarde gratuit - Guide
- Tableau des codes ascii - Guide
- Barbara veut calculer automatiquement son budget dans un tableau. citez un des logiciels lui permettant de faire des calculs sur des tableaux de nombres (tableur) - Forum C#
- Somme tableur - Guide
2 réponses
Il faut retourner une référence, sinon, tu retournes une copie.
La vrai soumission c'est quand les esclaves s'inquiètent du cours du coton.
Char Snipeur
Zone& Carte::get_zone(int x , int y) { return contenu[x][y]; } const Zone Carte::get_zone(int x , int y)const { return contenu[x][y]; }La première méthode sert à la modification et s'applique directement à un objet, la deuxième sert à la lecture et s'appliquera plutôt à des objets constant ou temporaires. Dernière précision, ce n'est pas l'une ou l'autre qu'il faut, mais les deux.
La vrai soumission c'est quand les esclaves s'inquiètent du cours du coton.
Char Snipeur
J'ajouterai que pour comprendre la nnotion de copie / référence / pointeur, il faut s'interesser aux notions de pile d'appels et de tas mémoire. tout ce qui est déclaré dans l'entête d'une fonction passe par la pile d'appels. Si on place des pointeurs, les pointeurs sont sur la pile d'appels, mais "pointent" sur l'objet (qui lui peut être situé sur le tas ou sur la pile)....
quand on crée avec un "new" on crée sur le tas, sinon c'est sur la pile ...