Constructeur de copie en C++

Nous avons discuté sur les constructeurs en C++. Dans ce tutoriel nous allons discuter sur le constructeur de copie en langage de programmation C++.
 
 

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

Un constructeur de copie est une fonction membre qui initialise un objet en utilisant un autre objet de la même classe. Un constructeur de copie a le prototype suivant:

ClassName (const ClassName &obj);

Ici, obj est la référence d’un objet utilisé pour initialiser un autre objet.
 

Exemple du constructeur de copie
#include<iostream>

using namespace std;

class Point
{
    private:
		int x, y;
    
    public:
		Point(int x1, int y1)
		{
			x = x1;
			y = y1;
		}
		
		/* Constructeur de copie */
		Point (const Point &p)
		{
			x = p.x;
			y = p.y;
		}
		
		void afficher()
		{
			cout << x << " " << y << endl;
		}
};
/* main function */
int main()
{
    Point obj1(3, 7);  // Constructeur paramétré
    Point obj2 = obj1;   // Constructeur de copie
    cout <<" Constructeur paramétré : ";
    obj1.afficher();
    cout <<" Constructeur de copie : ";
    obj2.afficher();
    return 0;
}

La sortie :
 

 
 
Dans le cas ci-dessus, le constructeur de copie peut être appelé de la manières suivantes:
 


 

Quand le constructeur de copie est appelé?

Le constructeur de copie est appelé dans les scénarios suivants:

  • Lorsque nous initialisons l’objet avec un autre objet existant du même type de classe. Par exemple, Point p1 = p2, où Point est la classe de base.
  • Lorsque l’objet du même type de classe est passé par valeur en tant qu’argument.
  • Lorsque la fonction retourne l’objet du même type de classe.

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *