Question sur les fonctions «const», C ++
-
28-10-2019 - |
Question
Je comprends que lorsque je déclare une fonction membre comme constant, je dis que je ne changerai pas la classe. Ma question - «classe» fait-elle référence à (*) cette instance ou à la classe en général?
Pour exmaple - si j'ai une fonction de membre const qui créent une nouvelle instance de la même classe et modifiez cette instance, est-ce légal?
Merci!
La solution
La const
fait référence à l'instance sur laquelle vous appelez la fonction, c'est également pourquoi les fonctions des membres statiques ne peuvent pas être déclarés const. Une fonction const peut lire, mais pas écrire, les champs du this
Instance, et il ne peut appeler que des méthodes statiques et const de this
, mais il a un accès complet à la portée mondiale.