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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
ClassName (const ClassName &obj);
ClassName (const ClassName &obj);
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
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#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;
}
#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; }
#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 *