I have a class A consisting of a member data which is a pointer B* that points to some abstract class B. Now when I try to write the copy constructor of the class A, I don't know how to handle the copying of the data B*. I cannot use "new" as it is abstract. Does that mean I have to write some virtual constructor for class B?