A copy constructor creates a new object as a copy of an existing one. It takes a reference to another object of the same class: You use it when passing objects by value to functions, returning objects by value, or explicitly writing If you don't define one, the compiler generates a default that copies each member variable.
For simple types, that works fine. Understanding this concept deeply will help you write better code. Practice with examples until the pattern becomes automatic. Review earlier sections if anything is unclear.
Building on solid foundations makes advanced topics easier.