const à la fin d'une méthode donnant une erreur
Question
Je ne comprends pas pourquoi je reçois une erreur avec Che Const à la fin de ma méthode.La méthode imprime ne change aucun membre de classe, non?
class Hello{
public:
int get_member() {return member_;};
void print() const {
cout<<get_member()<<endl;
};
private:
int member_;
};
Le message d'erreur est: Erreur lors du passage "const bonjour" comme "cet" argument de "int Hello :: get_member ()" rejette les qualificatifs [-Fpermissive]
La solution
int get_member() const {return member_;}
devrait le réparer.Vous ne pouvez pas appeler un membre non-const d'un membre de Const car il brise la «promesse» du const.Si vous pouviez, il n'y aurait aucune garantie que l'objet n'est pas modifié pendant l'appel.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow