Comment this peut-il être nul alors qu'il s'agit d'un pointeur sur l'objet lui-même ? Dans tous les cas, j'aimerais que la fonction fonctionne également lorsqu'on lui envoie un pointeur nul, est-ce possible ?
Comment this peut-il être nul alors qu'il s'agit d'un pointeur sur l'objet lui-même ? Dans tous les cas, j'aimerais que la fonction fonctionne également lorsqu'on lui envoie un pointeur nul, est-ce possible ?
Comme ça:
Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 CUneClasse *pUnObj = NULL; pUnObj->UneFonctionMembre();
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Oui mais en l'occurence, mon objet est déclaré comme attribut dans ma classe Game, donc ce problème ne devrait pas se poser non ?
Puis, comme dit plus haut, il faudrait que ma fonction accepte les pointeurs nuls (qui désigneraient une case vide).
Résoluuuuu \o/
En fait, il y avait plusieurs problèmes :
- mon initCoords() était appelé dans le constructeur de l'objet, et donc mon pointeur vers map ne menait vers rien (vu que la méthode setMap() n'avait pas encore été appelée)
- ensuite, j'utilise une classe qui contient un attribut représentant chacune de mes maps ; ma méthode getPlayersMap fesait un simple return m_playersMap mais je me suis rendu compte qu'en fait l'objet renvoyé n'était pas le vrai m_playersMap mais plutôt une copie. J'imagine que ça fonctionne comme le passage de paramètre par copie ?
J'ai donc simplement créé des fonctions supplémentaires pour récupérer un ptr vers les m_maps et ça marche.
Merci à tous pour vos précieux conseils.
(Et probablement à bientôt pour d'autres questions. =P)
Partager