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.