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
    }
}