Copie en C++

Le C++ fonctionne comme le C : par défaut, on copie.

Rappel du C

struct Point { int x; int y; } int main() { Point p = {.x = 3, .y = 2}; Point q = p; q.x = 100; }

Que vaut p.x ?

Cela vaut 3.

En C++ pareil, on copie

vector<int> A = ... un vecteur de 10000000 d'éléments.... vector<int> B = A;

Oui, oui, .... B = A; est hyper looooonnnnnnng.

Constructeur par copie

Par défaut, quand C++ fait une "copie", il fait une copie superficielle. Mais C++ offre la possibilité de définir soi-même un constructeur par copie.

class BigInt { BigInt(BigInt& x) { // là on écrit le code qui copie } }