Tableaux et classes c++
Résolu
seabust
Messages postés
744
Date d'inscription
Statut
Membre
Dernière intervention
-
seabust Messages postés 744 Date d'inscription Statut Membre Dernière intervention -
seabust Messages postés 744 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:
--
N'oubliez pas de mettre le statut resolu si vous avez obtenu votre réponse
Il y 10 types de personnes dans le monde : ceux qui comprennent le binaire et les autres
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
--
N'oubliez pas de mettre le statut resolu si vous avez obtenu votre réponse
Il y 10 types de personnes dans le monde : ceux qui comprennent le binaire et les autres
A voir également:
- Citez un des logiciels lui permettant de faire des calculs sur des tableaux de nombres (tableur).
- Tableau des codes ascii - Guide
- Logiciel de sauvegarde gratuit - Guide
- Trier un tableau excel - Guide
- Comment faire des tableaux sur word - Guide
- Dans le fichier, générez ce tableau automatiquement (tableau croisé dynamique ou table de pilote) à partir des quatre premières colonnes. - 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 ...