Chapitre 17 : méthode et attribut de classe

Méthode de classe

Une méthode de classe peut être vue comme "une fonction" qui fait partie de la classe. Elle peut être appelée sans objet.

EXEMPLE
class A{
  int at;
  public:
    void methode1(){ //methode d'objet
      at = 1;
    }
    //static void methode2(){
    //  at = 1;
    //} //erreur : interdit d'accéder à des attributs d'objets
    static void methode3(){ //methode de classe
    }
    void void methode4(){ //methode d'objet
    }
}

int main(){
  A obj;
  obj.methode1();
  obj.methode3();
  obj.methode4();
  //A::methode1(); //erreur : c'est une méthode d'objet
  A::methode3(); //ok méthode de classe
  //A::methode4(); //erreur
}

Attribut de classe

Un attribut de classe est comme une variable global membre de la classe. Il doit être défini hors de la classe et déclaré dans la classe. Les méthodes de la classe peuvent y accéder.

EXEMPLE
struct A{
  int a; //attribut d'objet
  static int b; //attribut de classe (static)
  void methode1(){
    b = 1;
  }
  static void methode2(){
    b = 2; // ok b est un attribut de classe donc accessible même dans une méthode de classe
  }
}



int A::b = 0; //attention aux définitions multiples

int main(){
  A ob1;
  A ob2;
  ob1.b = 1;
  ob1.a = 2;
  ob2.b = 3;
  ob2.a = 4;
  //ici ob1.b == 3
  A::b = 1; //ok
  //A::a = 1 //erreur
}

Vocabulaire : Bilan

Membre d'une classe

1.

2.