Si A est un identifiant de classe pour expliciter la manière de construire un nouvel objet A à partir d'une expression de type A.
On peut écrire un constructeur de copie avec :
class A{
public:
A(int p){
...
}
A(A& b){
...
}
}
void f(const A b){
...
}
int main(void){
A c{2};
f(3);
f(c); //ok appel à A(const A& b) pour construire le paramètre A b.
}
Par défaut un constructeur de copie est implicitement écrit par le compilateur.