[Débutant] Mutable et const
Bonjour,
Selon ce que j'ai compris, une variable mutable est une variable qu'on peut modifier, même quand elle est const.
1) Est-ce le seul effet de ce mot clé ?
2) Dans quel cas utilise-t-on, dans la vie réelle, ce mot clé ?
Dans le GOTW sur l'emploi de const, ils montrent une class sans const, et expliquent où et pourquoi mettre du const.
Ici la partie de code qui m'interresse, sans les const
Code:
1 2 3 4 5 6 7 8 9 10
|
class Polygon
{
public:
Polygon() : area_(-1) {}
private:
void InvalidateArea() { area_ = -1; }
double area_;
}; |
Ici, leur solution :
Code:
1 2 3 4 5 6 7 8 9 10
|
class Polygon
{
public:
Polygon() : area_(-1) {}
private:
void InvalidateArea() const { area_ = -1; }
mutable double area_;
}; |
Pour pouvoir annoncer une fonction const, il rend mutable la variable.
Si quelqu'un veut bien éclairer ma lanterne sur ces questions, je lui en serais reconnaissant.
Merci