Chapitre 9 : Surcharge d'opérateur en interne

On ne peut pas surcharger les opérateur

à l'exterieur d'une classe, mais on peut à l'intérieur d'une classe par des méthodes d'objet

Si @ est un opérateur,

Exemple

class A{
  int t[10];
  public:
    int& operator[](int i){
      if (i<0 || i>9){
        fprintf(stderr, "erreur d'indice\n");
        exit(1);
      }
      return.this->t[i];
    }
}


int main(){
  A obj;
  obj[0] = 5; obj.operator[](0) = 5;
  obj[1] = obj[0] * 3;
  // obj[11] = 6; // erreur à l'execution
}