Skip to main content

Qu'est-ce qu'un constructeur de copie?

Un constructeur de copie est une fonction spéciale en C ++ et d'autres langues influencées par C ++, qui copie un objet de codage.Le programmeur le fait en ajoutant la déclaration du constructeur de copie et en faisant référence à un objet.Principalement, cela profite au programmeur en gagnant du temps, mais il garantit également que le programmeur n'entre pas incorrectement le codage de l'objet.Lorsque la copie est faite, elle doit avoir un pointeur de mémoire différent ou il pointera vers la même section à laquelle l'objet d'origine pointe.L'un des principaux inconvénients de l'utilisation des constructeurs de copie est qu'ils ne peuvent pas fonctionner indépendamment;Si l'objet d'origine est effacé, la copie le sera également.

Lorsqu'un programmeur utilise un constructeur de copie, il ou elle dit au code de copier un objet déjà répertorié dans le code.Pour ce faire, le programmeur doit d'abord utiliser une déclaration pour indiquer le codage pour effectuer la fonction de copie.Le programmeur doit également faire référence à un autre objet, de sorte que l'objet doit déjà être construit ou il n'y aura aucun moyen d'effectuer la copie.

Le principal avantage de l'utilisation d'un constructeur de copie est qu'il fait gagner du temps.Au lieu d'avoir à retaper les mêmes fonctions et à coder à nouveau, le programmeur peut simplement ajouter une référence et l'objet sera prêt.Cela a un autre avantage caché dans un codage cohérent et précis.Tant que l'objet d'origine est codé correctement, l'objet copié aura également le codage correct.Ces deux avantages sont les plus apparents avec des objets complexes, mais les programmeurs peuvent également bénéficier de la copie d'objets simples.

Dans les langages C ++, de nombreuses fonctions nécessitent un pointeur de mémoire.Cela indique à la fonction exactement où regarder dans la mémoire pour certaines informations, ou où il peut stocker des données.Le programmeur doit spécifier un nouveau pointeur de mémoire lorsqu'un constructeur de copie est utilisé;Sinon, les deux objets utiliseront le même espace mémoire.En surface, cela peut ne pas sembler mauvais, mais cela peut entraîner des incohérences.Par exemple, si les deux objets partagent le même pointeur et qu'un objet est utilisé pour soumettre des demandes de prêt pendant que l'objet copié est fait pour soumettre des demandes de carte de crédit, toutes les demandes de carte de crédit seront stockées avec les demandes de prêt.

Les programmeurs doiventMéfiez-vous de l'effacement d'un objet, car les objets du constructeur de copie ne peuvent pas fonctionner indépendamment.Si le programmeur efface l'objet d'origine, l'objet copié n'aura rien à référencer.Sans code à référence, l'objet copié ne pourra pas effectuer sa tâche et deviendra inutile.