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

  FORUM HardWare.fr
  Programmation

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°32958
tgrx
My heart is pumping for love
Posté le 18-05-2001 à 14:08:11  profilanswer
 

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 ! :)

mood
Publicité
Posté le 18-05-2001 à 14:08:11  profilanswer
 

n°32962
tgrx
My heart is pumping for love
Posté le 18-05-2001 à 14:09:55  profilanswer
 

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

n°32964
BENB
100% Lux.
Posté le 18-05-2001 à 14:13:01  profilanswer
 

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...

n°32966
tgrx
My heart is pumping for love
Posté le 18-05-2001 à 14:14:13  profilanswer
 

exact. merci beaucoup.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

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

 

Sujets relatifs
pkoi strcpy(char *, const char *) marche pas avec char* en 1er param ? 
Plus de sujets relatifs à : [C++] grrr... pb avec 'const'


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)