Not sure I understand the question. The default copy constructor of a derived class is the same as one for any other class. You define the copy constructor exactly the same way as well.
let my try to explain my question again is:the below code won't pass any compilation because I have to define constructor for the base,but on the other side the Base class will not be interface !!! so:
1. if my interface have private members, how the derived Class can have access to it to make copy constructor? (any solotion other than protected?)
2. any purpose for having private members for pure virtual class(Base class in my code)?
From what I know, by definition an interface doesn't have member variables. However an abstract (purely virtual) class can allow access to private variables the same way any other class can, like through friends, or (non-private) accessor methods.
In your above example it appears you only need to add a public constructor to your Base class, and derived classes.