If we suppose that we have this hierarchy of classes: A <- B <- C. I have the following questions:
1) If I implement a copy constructor in B, must I call the copy constructor of A in the implementation of B ?
2) Will the default copy constructor of C call the copy constructor that I have implemented in B ?
Not neccessarily, but it’s good practice. It won’t be called automatically. You could also call some other constructor (or none, in which case the default constructor is invoked) and do whatever you want, though it is idiomatic to call the base copy constructor.
Yes, it will.