A copy constructor is a special constructor in the C++ programming language for creating a new object as a copy of an existing object. The first argument of such a constructor is a reference to an object of the same type as is being constructed (const or non-const), which might be followed by parameters of any type (all having default values).
Normally the compiler automatically creates a copy constructor for each class (known as a default copy constructor) but for special cases the programmer creates the copy constructor, known as a user-defined copy constructor. In such cases, the compiler does not create one. Hence, there is always one copy constructor that is either defined by the user or by the system.
A user-defined copy constructor is generally needed when an object owns pointers or non-shareable references, such as to a file, in which case a destructor and an assignment operator should also be written (see Rule of three).
Read more about Copy Constructor: Definition, Operation, Bitwise Copy Constructor, Logical Copy Constructor, Explicit Copy Constructor
Famous quotes containing the word copy:
“The men are magnificentthe young men tall, well formed, and admirably dressed; the old men positively beautiful, with their fresh complexions, white hair, and admirable neatness. Nothing struck me more than this, and we might copy it to advantage here. As an Englishman grows older he becomes more and more careful in his dress.”
—M. E. W. Sherwood (18261903)