Classes et structures (C++ uniquement)

La classe C++ est une extension de la structure de langage C. Etant donné que la seule différence entre une structure et une classe est que les membres de la structure ont un accès public par défaut et que les membres de la classe ont un accès privé par défaut, vous pouvez utiliser les mots clés class ou struct pour définir des classes équivalentes.

Par exemple, dans le fragment de code suivant, la classe X est équivalente à la structure Y:

class X {

  // private by default
  int a;

public:

  // public member function
  int f() { return a = 5; };
};

struct Y {

  // public by default
  int f() { return a = 5; };

private:

  // private data member
  int a;
};

Si vous définissez une structure, puis que vous déclarez un objet de cette structure à l'aide du mot clé class, les membres de l'objet sont toujours publics par défaut. Dans l'exemple suivant, main() a accès aux membres de obj_X même si obj_X a été déclaré à l'aide d'un spécificateur de type élaboré qui utilise la clé de classe class:

#include <iostream>
using namespace std;

struct X {
 int a;
 int b;
};

class X obj_X;

int main() {
  obj_X.a = 0;
  obj_X.b = 1;
  cout << "Here are a and b: " << obj_X.a << " " << obj_X.b << endl;
}
Voici la sortie de l'exemple ci-dessus:
Here are a and b: 0 1
Informations connexes