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.

