[C++] grrr... pb avec 'const'

grrr... pb avec 'const' [C++] - Programmation

Marsh Posté le 18-05-2001 à 14:08:11    

J'ai une fonction toute simple censee renvoyer un pointeur sur un noeud particulier d'un arbre.
 
class Node
{
   ...
   Node* front;
   Node* back;
public:
   Node* ChooseNode() const;
};
 
 
ma fonction ChooseNode ressemble a ca :
 
Node* Node::ChooseNode() const
{
  if (...)
    return front;
 
  if (...)
    return back->ChooseNode();
 
  return this;
}
 
Et GCC m'envoie chier sur le return this, car apparemment ca fout le bordel avec la fonction qui est const.
Je ne comprends pas, car 4 lignes au dessus, je fais un 'return front;', et front est pourtant du meme type que this (a savoir Node*), et pourtant GCC accepte la ligne du dessus poliment.
 
HELP ! :)

Reply

Marsh Posté le 18-05-2001 à 14:08:11   

Reply

Marsh Posté le 18-05-2001 à 14:09:55    

Voici le message d'erreur

bsp3d.cpp: In method `class Bsp3dNode * Bsp3dNode::RayIntersectionDistance(const Ray &, float * = 0, Vector3d * = 0) const':
bsp3d.cpp:183: return to `Bsp3dNode *' from `const Bsp3dNode *' discards qualifiers
make: *** [bsp3d.o] Error 1

Reply

Marsh Posté le 18-05-2001 à 14:13:01    

Normal...
change le proto pour
const Node * ChooseNode(void) const;
car sinon il est possible de modifier this a travers ta fct et donc elle n'est plus const...

Reply

Marsh Posté le 18-05-2001 à 14:14:13    

exact. merci beaucoup.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed