Quote Originally Posted by C++ Primer, Lippman and others
It is usually best to define either implicitly or explicitly the default and copy constructors. The default constructor is synthesized only if there are no other constructors. If the copy constructor is defined, then the default constructor must be defined as well.
("must" was made bold by me)

I have trouble understanding the last phrase. Especially because while studying through this chapter, I've built a class that doesn't implement a default constructor. Maybe that "must" should be read "should". However, I cannot understand why I should (must?) define the default constructor.


Also, on a related note, is there any instance in which it may make sense to create a private copy constructor but still define it? I cannot fanthom for the life of me, a situation in which I will want only my member functions and friends to make copies.