Utilisation du constructeur de copie
En C ++, le constructeur de copie est utilisé pour dupliquer le contenu d'un objet à l'autre. Maintenant, regardons un exemple pour montrer comment utiliser le constructeur de copie profonde.
Tout d'abord, nous avons intégré le fichier d'en-tête pour les fonctionnalités d'entrée et de sortie. Après cela, nous avons utilisé l'espace de noms standard. Maintenant, nous allons déclarer une «salle» de classe. Nous avons initialisé la longueur et la largeur de la pièce et l'avons placée en privé. Le type de données de la longueur et de la largeur est «double» ici.
Maintenant, nous avons déclaré la «longueur» et la «largeur» de la variable en utilisant le constructeur paramétré. Ici, nous avons transmis ces paramètres au constructeur «salle» et cela devrait être public. En plus de cela, nous avons utilisé un constructeur de copie. Nous copie le contenu de l'argument «OBJ». La fonction CalculateAaa () est appelée pour trouver la zone de la pièce en multipliant la valeur de la longueur par la valeur de la hauteur.
À l'étape suivante, nous avons déclaré la fonction principale (). Ici, nous avons construit un objet de la classe «salle» et avons également spécifié les valeurs de sa longueur et de sa largeur. Maintenant, il vous suffit de copier les données de «Room1» à «Room2». Après cela, nous avons utilisé «cout» pour afficher les zones des deux pièces. En fin de compte, le retour0 est utilisé pour résilier le programme.
Utilisez le constructeur de copie superficiel
Lorsqu'une classe n'interagit pas dynamiquement avec l'allocation de la mémoire, le constructeur de copie superficiel est utilisé. Deux objets dans le constructeur de copie superficiel feraient référence à une adresse de mémoire similaire. Les références aux éléments réels sont reproduits dans une copie superficielle. Un constructeur de copie standard est spécifié par le compilateur. C'est une réplique un peu par bit d'une chose. Ci-dessous, une instance est utilisée pour illustrer la notion d'un constructeur de copie superficiel.
Au début du programme, nous avons introduit deux bibliothèques requises, et . Parallèlement à cela, nous avons également utilisé un espace de noms standard. Maintenant, nous avons créé une classe nommée 'Computer'. Nous avons construit un pointeur de la classe et défini son type de données «caractère».
Nous avons publiquement déclaré la fonction de la classe «ordinateur» et ici nous avons passé le constructeur défini comme un paramètre de cette fonction. Nous avons créé une allocation de mémoire dynamique ici et l'avons réglé égal à la variable du pointeur. Il permet à l'utilisateur de créer une mémoire pour un attribut ou même un tableau dans le programme.
De plus, nous avons appliqué la fonction concatenate () void. Pour concaténer deux cordes, nous avons utilisé la méthode strcat (). Maintenant, nous avons déclaré un constructeur de copie de la classe «ordinateur». Pour afficher la sortie, nous avons utilisé la fonction VOID Display () avec l'instruction «cout». Maintenant, il est temps d'appeler la fonction principale (). Nous avons utilisé le constructeur de copie à l'intérieur du corps de la fonction principale (). Il est appelé un constructeur car il est utilisé pour générer un objet.
Ainsi, le constructeur de copie comme son nom l'indique, génère un nouvel objet qui est une réplique identique de la copie d'origine. Nous avons créé deux objets et spécifié les valeurs de ces objets. Ensuite, nous avons appliqué la fonction d'affichage () individuellement sur ces objets pour obtenir le résultat.
À l'étape suivante, A1 est tentant de concaténer, donc nous avons appliqué le 'A1.fonction concatenate () '. Ici, nous avons également établi une valeur de «technologie» pour la concaténation. Nous avons à nouveau utilisé la méthode affichage () pour obtenir la sortie. Maintenant, nous terminons le programme en utilisant «retour 0».
Utilisez le constructeur de copie profonde
La copie profonde nécessite un espace mémoire unique pour les données dupliquées. En conséquence, l'original et la copie sont distincts. Les modifications implémentées dans une région de mémoire n'ont aucun impact sur la réplique. Nous utiliserions un constructeur de copie défini par l'utilisateur lors de la construction de la mémoire dynamique avec des pointeurs. Les deux entités se référeraient à des emplacements séparés dans la mémoire.
De plus, nous utilisons l'espace de noms standard. Nous allons maintenant faire une classe appelée «ProgrammingNanguage.`` Nous avons créé un pointeur de classe et défini son type de données en caractères.`` Ensuite, nous avons défini la fonction de la classe 'ProgrammingNanguage' en tant que public, et nous lui avons fourni le constructeur spécifié comme un argument.
Ici, nous avons construit une allocation de mémoire dynamique et l'ont allouée équivalente à la variable du pointeur. Il nous permet d'acquérir un stockage pour un ensemble de données ou un tableau dans le programme. La fonction est appelée ici, et le constructeur de la classe ProgrammingLanguage est donné comme paramètre. Nous avons utilisé la méthode du concatenate vide ().
De plus, nous utiliserons la technique strcat () pour concaténer deux cordes ensemble. Maintenant, nous avons créé un constructeur de copie de la classe «ProgrammingNanguage». Les données sont affichées à l'aide de la méthode Void Affichage () et de la commande «cout». La fonction principale () sera désormais appelée. Dans le corps de la fonction principale (), nous avons utilisé le constructeur de copie. Cela duplique un objet prédéfini. Par conséquent, nous ne voudrions normalement pas modifier l'objet réel. Nous fabriquons deux objets et attribuons l'objet 'a1' la valeur 'python.'L'objet' A2 'est égal à l'objet' A1 'dans la phase suivante.
Pour obtenir la sortie, nous avons utilisé la méthode affichage () sur chacun de ces objets individuellement. Maintenant, nous avons utilisé la commande «return 0» pour quitter le programme.
Conclusion
Dans cet article, nous avons clarifié le fonctionnement d'un constructeur de copie en langue C ++. Chaque fois qu'un objet est fabriqué, un constructeur est une forme spécifique d'une classe dérivée qui est déclarée instantanément. Les constructeurs de copie sont les constructeurs qui seront utilisés pour reproduire un élément d'une classe spécifiée qui existe déjà. Nous avons également observé comment utiliser un constructeur de copie superficiel et un constructeur de copie profonde à l'aide de différentes instances.