Constructeurs en C++

Qu'est-ce qu'un constructeur ?

Un constructeur est une méthode spéciale dans une classe C++ qui s'active automatiquement lors de la création d'une instance de cette classe. Sa principale fonction est d'initialiser les attributs de l'objet nouvellement créé. À l'instar des fonctions classiques, il est également possible de passer des paramètres au constructeur pour faciliter cette initialisation. Ces paramètres sont fournis au moment de l'instanciation de l'objet.

Syntaxe et Exemples

Pour définir un constructeur, vous utilisez le nom de la classe suivi de parenthèses. Par exemple, voici comment un constructeur peut être défini dans une classe :

class MyClass {
  public:
    // Définir un constructeur qui affiche un message
    MyClass() {
      std::cout << "Le constructeur a été exécuté !";
    }
};

int main() {
  MyClass myObj;  // Ceci appelle le constructeur
  return 0;
}

Utilisation des arguments dans un constructeur :

Voici un exemple où nous définissons un constructeur avec des arguments :

class Circle {
  public:
    int X;
    int Y;
    int radius;
    Circle(int a, int b, int c) {
      X = a;
      Y = b;
      radius = c;
    }
};

int main() {
  // Appel du constructeur avec des arguments
  Circle myCircle1(5, 5, 10);
  Circle myCircle2(0, 0, 5);

  // Afficher les valeurs des attributs de chaque objet
  std::cout << "X=" << myCircle1.X << ", Y=" << myCircle1.Y << ", radius=" << myCircle1.radius << "\n";  // Sortie : X=5, Y=5, radius=10
  std::cout << "X=" << myCircle2.X << ", Y=" << myCircle2.Y << ", radius=" << myCircle2.radius << "\n";  // Sortie : X=0, Y=0, radius=5
  return 0;
}

Comme pour les fonctions membres, un constructeur peut également être défini en dehors de la classe après l'avoir déclarée :

class Circle {
  public:
    int X;
    int Y;
    int radius;
    // Déclarer le constructeur
    Circle(int a, int b, int c);
};

// Définir le constructeur en dehors de la classe
Circle::Circle(int a, int b, int c) {
  X = a;
  Y = b;
  radius = c;
};