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

  FORUM HardWare.fr
  Programmation
  C++

  Type* const* and const method

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Type* const* and const method

n°2284690
kirua_sama
Learn sciences with senses
Posté le 04-07-2016 à 21:09:43  profilanswer
 

Bonsoir tout le monde.
 
J'ai une erreur de compilation que j'ai du mal à comprendre sur ces quelques lignes très simples.
 

Code :
  1. bool IsValid() const
  2.       {
  3.         X* const* previousNode = new X*;
  4.         return this->IsValid(previousNode);
  5.       }
  6.       bool IsValid(X* const* previousNode) const
  7.       {
  8.         if (!*previousNode)
  9.           *previousNode = this;
  10.        return true;
  11.      }


 
Je cherche donc à utiliser un pointer d'un pointer constant sur la classe X (X* const*) dans ma methode constante s'assurant que je ne modifie pas X.
Le code me semble assez logique, cependant j'ai l'erreur suivante à la compilation pour la ligne "*previousNode = this":
Error 1 error C2440: '=' : cannot convert from 'const X<...> *const ' to 'X<...> *const '
 
Pourquoi le compilateur considère t-il que this est un const X* const?
 
Je vous remercie.
Bien cordialement.


---------------
“L'éducation est l'arme la plus puissante que l'on puisse utiliser pour changer le monde”
mood
Publicité
Posté le 04-07-2016 à 21:09:43  profilanswer
 

n°2284752
theshockwa​ve
I work at a firm named Koslow
Posté le 05-07-2016 à 15:38:51  profilanswer
 

sur ta ligne 10, dans ton affictation, "this" est de type "X const * const", donc tu casses ta const-correctness si tu l'affectes à un "X * const".

 

Edit : c'est peut-être pas clair pour toi, mais "this" est const parce que ta méthode est marquée comme const.


Message édité par theshockwave le 05-07-2016 à 20:11:09

---------------
last.fm

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

  Type* const* and const method

 

Sujets relatifs
[Perl] Can't call method "Open" on an undefined valueUtilité des références et des const
problème de conversion unsigned const char* => const char*delegate + string name method
Comment supprimer un "warning" lié au mot-clef "const"Initialiser des const dans une class, possible?
syntaxe : operator T&() const;Codeigniter & ajax : The script tried to execute a method or access a
[VBA] Erreur 1004 AutoFiltre method of Range class failedEnchainer les appels a des methodes const
Plus de sujets relatifs à : Type* const* and const method


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR