Introduction à Copy Constructor en C ++

Les langages de programmation nous offrent diverses fonctionnalités qui peuvent être exploitées pour développer l'application. Dans le cas des langages de niveau intermédiaire, les fonctionnalités peuvent être moindres par rapport aux langages de haut niveau, mais quelles que soient les options qu’elles offrent, elles permettent de développer des applications importantes. Dans cette section, nous allons découvrir les constructeurs de copie. Le constructeur peut être défini comme la fonction spéciale dont le nom est le même que celui de la classe dans laquelle il a été défini. Le constructeur est appelé automatiquement lorsque l'objet de cette classe est initialisé. On pourrait dire que l'initialisation de l'objet si la classe appelle implicitement le constructeur. Si le constructeur est en surcharge, dans ce cas, les valeurs doivent être transmises avec l'objet lors de l'initialisation. Ici, le type de constructeur que nous allons apprendre est très unique et connu sous le nom de constructeur de copie. Ce constructeur fonctionne en utilisant d'autres objets plutôt que des valeurs normales.

Comment fonctionne Copy Constructor en C ++?

Le constructeur de copie peut être défini comme le type spécial de constructeur utilisé pour déclarer l'objet et l'initialiser à l'aide d'autres objets. Le constructeur normal est appelé lorsque l'objet de cette classe est initialisé. Si le constructeur est surchargé de plusieurs paramètres, l'initialisation de l'objet et la transmission du même nombre d'arguments appellent le paramètre de surcharge. Comme le constructeur de copie est surchargé, il peut donc être appelé lorsque l'objet est initialisé à l'aide de l'argument et que l'argument doit passer la valeur de l'objet plutôt que toute valeur normale.

Une fois que la valeur reçue par le paramètre du constructeur surchargé a trouvé un objet, le constructeur de copie sera appelé et l'ensemble des instructions définies dans le constructeur de copie commencera à s'exécuter. Avant d'utiliser le constructeur de copie, nous devons créer un objet de la même classe. Il indique clairement l'approche selon laquelle tout programme destiné à implémenter un constructeur de copie doit également avoir un constructeur par défaut ou paramétré afin que l'objet puisse être créé, ce qui aidera à impliquer le constructeur de copie.

Le scénario global peut être considéré comme exploitant un objet afin de créer un autre objet. Toutes les valeurs liées à l'objet utilisé pour initialiser l'objet par le constructeur de copie sont allouées à l'objet nouvellement initialisé. Cela signifie que si la valeur d'une variable est utilisée par le premier objet, la même variable peut être utilisée par l'objet initialisé par le constructeur de copie. La fonctionnalité du constructeur de copie est considérée comme très importante et rend le développement très pratique pour certaines applications. Ses fonctionnalités pour utiliser la référence d'objet de la même classe aident à développer l'application qui a l'exigence qui peut être remplie en utilisant le constructeur de copie uniquement. Bien qu'il ne soit pas exploité aussi souvent que le constructeur par défaut ou paramétré, il est suffisamment puissant pour contribuer à ajouter de nouvelles fonctionnalités à l'application.

Exemple

Comprenons le concept de constructeur de copie en utilisant l'exemple. Ici, nous allons travailler sur un exemple simple qui vous montrera comment fonctionne le constructeur de copie et comment il peut accéder aux valeurs qui étaient liées à l'objet à l'aide duquel le nouvel objet est créé par le constructeur de copie. L'illustration ci-dessous vous donnera une idée de la différence d'appeler le constructeur de copie par rapport à l'appel du constructeur surchargé normal.

Programme

#include
using namespace std;
class Check
(
public:
int val;
Check(int a)
(
val=a;
)
Check(Check &i)
(
val = i.val;
)
);
int main()
(
int add_val;
Check a1(50);
Check a2(a1);
add_val = a2.val + 10;
cout< )
#include
using namespace std;
class Check
(
public:
int val;
Check(int a)
(
val=a;
)
Check(Check &i)
(
val = i.val;
)
);
int main()
(
int add_val;
Check a1(50);
Check a2(a1);
add_val = a2.val + 10;
cout< )

Dans ce programme, nous avons appelé le constructeur paramétré en contournant l'argument via a1. La valeur transmise est un entier car le constructeur paramétré a été défini pour accepter uniquement un entier. Lorsque la valeur 50 est transmise au constructeur, la valeur a été affectée à la variable nommée var. Ensuite, l'objet a1 a été transmis au constructeur de copie via a2. Une fois la référence d'objet reçue par le constructeur de copie, il a lié la valeur allouée au premier objet à l'objet nouvellement formé. Ceci est un exemple simple pour expliquer le concept du constructeur de copie. Il pourrait être utilisé dans plusieurs autres programmes pour obtenir diverses fonctionnalités dans l'application.

Production:

60

Règles et réglementation pour Copy Constructor en C ++

Le constructeur de copie est considéré un peu différent du constructeur par défaut ou paramétré. D'une part, lorsque le constructeur normal fonctionne en utilisant la valeur du type de données commun, d'autre part, le constructeur de copie fonctionne en utilisant l'objet précédemment créé de la même classe. La chose qui doit être assurée lors de l'utilisation du constructeur de copie est que les paramètres passés par le constructeur de copie doivent être utilisés avec un signe esperluette (&) car c'est un caractère spécial qui est utilisé pour contenir la référence d'objet. Si l'esperluette n'est pas utilisée lors de l'implémentation du constructeur de copie, elle ne sera plus un constructeur de copie mais sera automatiquement considérée comme un constructeur paramétré.

Quand il s'agit d'appeler le constructeur de copie, nous devons nous assurer que la valeur passée en arguments doit porter la référence d'objet plutôt que toute valeur appartenant au type de données commun. Ce sont les quelques éléments qui doivent être pris en compte très attentivement lors de l'implémentation du constructeur de copie dans le langage de programmation C ++. De plus, chaque fois que nous utilisons le constructeur de copie, nous devons nous assurer que nous le différencions correctement du constructeur paramétré, car à défaut, cela changera totalement les fonctionnalités du programme et entraînera une génération de sortie incorrecte.

Conclusion

Le constructeur de copie est considéré comme un type spécial de constructeur qui fonctionne en utilisant la référence d'objet de la même classe. Il est utilisé pour apporter plusieurs fonctionnalités dans l'application. Par rapport au constructeur par défaut, le constructeur de copie n'est pas utilisé très souvent dans les programmes simples, mais lorsqu'il s'agit de développer des applications complexes qui doivent être déployées dans l'environnement de production, le constructeur de copie y est utilisé et facilite également le développement d'applications. .

Articles recommandés

Ceci est un guide pour copier des constructeurs en C ++. Nous discutons ici de l'introduction et du fonctionnement du constructeur de copie en C ++ ainsi que des règles et de la réglementation pour le constructeur de copie en C ++. Vous pouvez également consulter les articles suivants pour en savoir plus -

  1. Copier le constructeur en Java
  2. Copier le constructeur en C #
  3. Constructeur en C ++
  4. Utilisation du constructeur en C
  5. Types de constructeur en C # avec implémentation de code