#terminology ## Definition A [[constructor]] that takes another object of the same class/struct as input, and creates a copy of it. If a class does not define its own copy constructor, then C++ *may* create an implicit copy constructor that copies all the member variables of the object. ## Example ```cpp struct Point { double x = 0; // member initialization double y = 0; // i.e. x and y are set to 0 by default // default constructor Point() // x and y are initialized above { } Point(double a, double b) : x(a), y(b) // initializer list { } // copy constructor Point(const Point& other) : Point(other.x, other.y) // constructor delegation { } // ... }; // struct Point ```