#include <iostream>
using namespace std;

class Etalon {
private:
  mutable int valeur;
public:
  Etalon(int valeur) { this->valeur = valeur; }
  int getValeur() const { valeur++; return valeur; }
};

int main() {
  const Etalon e(10);
  cout << e.getValeur() << endl;
  cout << e.getValeur() << endl;
  cout << e.getValeur() << endl;
  return 0;
}
/*
 * q.1 : il suffit de compiler puis exécuter le programme.
 * q.2 : un objet constant est un objet qu'on ne peut modifier via une référence
 *       un objet non-mutable est un objet qu'on ne peut modifier car aucune de
 *       ses méthodes ne le permet. Un non-mutable est forçément constant, 
 *       mais pas l'inverse.
 */