Default copy constructor and assignment operator are generated by the compiler in the derived class and not added by the programmer
The implicit functions will try to call their counterparts in the base class. This won't be possible since those are private to the base class, so you'll get a compilation error. This is how the base class is intended to work.
Copy constructor and assignment operator are defined and declared public in the derived class by the programmer
Then you've defeated the purpose of inheriting from the base class; your derived class is now copyable via these functions.
Copy constructor and assignment operator are defined and declared private in the derived class by the programmer
Again, you've defeated the base class and made your class copyable; but only within its member and friend functions.