Qu'est-ce que la surcharge de constructeur en C++ : caractéristiques et types

Publié: 2021-05-24

C++ est un langage de programmation orienté objet couramment utilisé dans l'industrie. C++ est un langage de programmation pionnier dans la POO, développé par Bjarne Stroustrup chez AT & T Bell Laboratories en 1979 . La fonctionnalité la plus fréquemment utilisée de c++ pourrait être de créer une classe dedans. Au sein d'une classe, nous pouvons créer des membres de classe - des méthodes et des variables.

Table des matières

introduction

Les constructeurs sont souvent utilisés pour créer des objets ou, techniquement, créer des instances d'un objet. Dans la plupart des langages de programmation orientés objet, ils sont également surchargés. Comme dans de nombreux langages de programmation, le nom du constructeur est prédéterminé en fonction de celui de la classe. Cela limite les objets nommés car il ne peut y avoir qu'un seul constructeur. Dans un scénario où plusieurs constructeurs sont requis, ils sont implémentés à l'aide des fonctions de surcharge.

En C++, les constructeurs par défaut sont sans paramètres. Ils sont instanciés à partir des membres de l'objet avec les valeurs par défaut correspondantes.

Vous pouvez avoir une bonne idée de la surcharge des concepts utilisés dans la programmation orientée objet.

Constructeur

Un constructeur (ctor) est une technique de programmation utilisée pour créer un objet dans la programmation orientée objet basée sur les classes. Un nouvel objet est créé en appelant un sous-programme spécial. C'est une fonction membre d'une classe qui, à son tour, initialise les objets d'une classe. Cette méthode accepte des arguments. Les paramètres fournis sont utilisés par le constructeur de base et les variables membres de l'ensemble.

Caractéristiques du constructeur

Un constructeur est une fonction membre spéciale de la classe. Elle est différente d'une fonction membre générique pour les raisons suivantes :

  • Le membre du constructeur est public
  • Il porte le même nom que celui de la classe déclarante.
  • Le nom est sensible à la casse
  • Les constructeurs n'ont pas de type de retour.
  • Le constructeur par défaut est implicitement créé.
  • Lors de la création d'un objet, le constructeur est appelé automatiquement.
  • Un constructeur n'est pas implicitement hérité.
  • Il a généralement des règles différentes pour les modificateurs de portée.

Types de constructeurs

Constructeurs par défaut - Le constructeur ayant des paramètres nuls et aucun argument. Ce sont des constructeurs implicites générés par le compilateur.

Les constructeurs paramétrés sont ceux par lesquels vous pouvez passer des arguments. Les arguments initialisent un objet qui a été créé. Créez un constructeur paramétré simplement en y ajoutant des paramètres, comme nous le faisons pour toute autre fonction. Utilisez les paramètres dans le corps du constructeur pour initialiser l'objet. Ce type de constructeur est couramment utilisé pour la surcharge et également pour initialiser divers éléments de données d'objets avec des valeurs initiales différentes.

Copier le constructeur - Il s'agit d'une fonction membre utilisée pour initialiser un objet à l'aide d'un autre objet de la même classe. Le compilateur, par défaut, crée un constructeur de copie pour chaque classe, en suivant une copie membre par membre entre les objets.

Constructeur en C++

En c++, un constructeur est automatiquement appelé lorsqu'un objet (c'est-à-dire l'instance d'une classe) le crée.

Si nous ne spécifions pas de constructeur, le compilateur C++ génère un constructeur par défaut pour nous (n'attend aucun paramètre et a le nom de la classe).

Un constructeur correctement écrit laisse l'objet résultant dans un état valide.

Surcharge du constructeur

La surcharge de constructeur est un phénomène de surcharge d'un constructeur par un autre constructeur.

Le constructeur donné peut être surchargé, de la même manière que la surcharge de fonction.

Les constructeurs surchargés portent le même nom que celui de la classe. Cependant, il varie selon plusieurs arguments. Lors de la création d'un objet, le type d'arguments transmis détermine le constructeur appelé.

La disponibilité de plusieurs constructeurs avec différents paramètres permet d'effectuer différentes tâches de programmation.

Surcharge de constructeur en C++

En c++, il existe plusieurs constructeurs dans une classe sous le même nom mais avec une liste d'arguments différente. Ce concept de surcharge de constructeur en c++ est assez similaire à la surcharge de fonction.

En règle générale, vous devez créer plusieurs constructeurs dans une classe pour initialiser différemment les variables membres pour les objets. Le critère pour que les constructeurs se comportent différemment est d'avoir un nombre différent de paramètres ou un positionnement différent ou des types de données différents pour les paramètres.

Les constructeurs qui créent fermement des objets à l'aide d'une seule classe et renvoient une nouvelle instance de la classe sont abstraits par l'industrie, qui crée des objets mais peut procéder de différentes manières en utilisant différentes classes ou différents schémas d'allocation, tels que des pools d'objets.

Comment fonctionne la surcharge de constructeur en C++ ?

Considérons l'exemple ci-dessous :

Le code illustrait un exemple de surcharge de constructeur en c++ .

Il existe 2 constructeurs de la classe "calculate":

  1. Un constructeur par défaut (sans aucun paramètre)
  2. Le Constructeur à trois paramètres

Et dans le main() il y a deux objets créés.

1. sortie :

Lorsqu'il est créé, il invoquera automatiquement le constructeur par défaut sans paramètres. En effet, lors de la création d'un objet, aucun paramètre n'est passé. Ainsi, il correspond à la définition de first(Default Constructor). Cela attribuera des valeurs 0 aux trois variables pour cet objet de la classe principale.

2. sortie2 :

Lors de sa création, il invoquera automatiquement le constructeur avec 3 paramètres. En effet, lors de la création d'un objet, un seul paramètre est passé. Ainsi, il correspond à la définition du second constructeur. Cela affectera 3 valeurs (transmises en tant que paramètres) à la variable pour cet objet de la classe principale.

Apprenez des cours de génie logiciel en ligne dans les meilleures universités du monde. Gagnez des programmes Executive PG, des programmes de certificat avancés ou des programmes de maîtrise pour accélérer votre carrière.

Conclusion

Comprendre le concept de programmation pour la surcharge des constructeurs en c++ est une compétence importante pour les programmeurs et les concepteurs de systèmes. Les étudiants dans le flux de programmes informatiques et liés à l'informatique peuvent améliorer leurs compétences et leurs crédibilités techniques, telles que les concepts OOP et l'optimisation du code. Les ressources et la base de connaissances du portail upGrad encouragent ces professionnels à acquérir l'expertise en programmation pour être compétitifs sur le marché de l'industrie. De plus, vous aurez l'occasion d'explorer le réseautage professionnel et le développement des compétences.

Si vous souhaitez en savoir plus sur le développement de logiciels à pile complète, consultez le programme exécutif PG de upGrad & IIIT-B en développement de logiciels à pile complète, conçu pour les professionnels en activité et offrant plus de 500 heures de formation rigoureuse, plus de 9 projets et affectations, statut d'anciens élèves de l'IIIT-B, projets de synthèse pratiques et aide à l'emploi avec les meilleures entreprises.

Que sont les constructeurs en programmation ?

Les constructeurs en programmation sont les fonctions dont le but principal est d'initialiser l'objet et d'effectuer d'autres tâches simples. Les constructeurs sont utilisés pour la programmation orientée objet, qui est un paradigme de programmation populaire utilisé. Un programme orienté objet contient donc des objets qui ont à leur tour des propriétés, des méthodes et des événements. Pour créer un objet, vous devez utiliser un constructeur et pour pouvoir utiliser l'objet, vous devez l'instancier.

Qu'est-ce que la surcharge du constructeur ?

La surcharge de constructeur signifie avoir plus d'un constructeur avec le même nom. Les constructeurs sont des méthodes invoquées lors de la création d'un objet. Vous devez utiliser le même nom pour tous les constructeurs qui est le nom de la classe. Cela se fait en déclarant le constructeur avec un nombre différent d'arguments. S'il n'y a pas d'arguments à passer, le constructeur par défaut est appelé. S'il y a un seul argument, alors le constructeur qui prend un seul argument est appelé. S'il y a deux arguments ou plus, le constructeur qui prend exactement deux arguments ou plus est appelé.

Comment initialiser des objets à l'aide de constructeurs ?

Les constructeurs sont cruciaux lorsqu'il s'agit d'initialiser vos classes. Il s'agit d'un type spécial de fonction utilisé pour créer et initialiser des objets. Parfois, nous ne voulons pas créer tous les champs de la classe car ils ne sont pas nécessaires. Si nous créons tous les champs, nous devons initialiser tous les champs. Dans ce cas, nous utilisons le constructeur par défaut et initialisons les champs comme nous le souhaitons. Lorsque vous créez une classe, vous pouvez créer un ou plusieurs constructeurs à l'intérieur de la classe. Ainsi, lorsque vous créez des objets pour cette classe particulière, vous pouvez facilement appeler le constructeur de celle-ci avec les arguments que vous souhaitez définir. Ces arguments peuvent être définis comme les valeurs des champs ou des attributs de la classe dont le constructeur est appelé.