Comme l'a dit JaredPar, la déclaration de changement à ptr
const char* ptr;
Et cela devrait fonctionner. Bien que cela semble surprenant (comment pouvez-vous itérer un pointeur const?), Vous êtes en train de dire que le caractère pointé est const, pas le pointeur lui-même. En fait, il existe deux endroits différents que vous pouvez appliquer const (et/ou volatile) dans une déclaration de pointeur, avec chacune des 4 permutations ayant une signification légèrement différente. Voici les options:
char* ptr; // Both pointer & pointed-to value are non-const
const char* ptr; // Pointed-to value is const, pointer is non-const
char* const ptr; // Pointed-to value is non-const, pointer is const
const char* const ptr; // Both pointer & pointed-to value are const.
Quelqu'un (je pense que Scott Meyers) dit que vous devriez lire les déclarations de pointeur dessus-dessous, à savoir:
const char* const ptr;
... serait lu comme « ptr est un pointeur constant à un personnage qui est constant ".
Bonne chance!
Drew
Merci, c'est utile. Maintenant, je dois juste me rappeler ce que cela signifie quand la méthode est marquée comme const ... –