分类: C/C++
2011-03-30 21:33:22
A copy constructor is a special constructor in the C++ programming language used to create 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 case, the complier doesnot create one.
A user-defined copy constructor is generally needed when an object owns pointers or non-shareable reference, such as to a file, in which case a destructor and an assignment operator should also be written.