What is a "Copy Constructor"?
Answers were Sorted based on User's Feedback
Answer / phool chand
A Copy Constructor constructs a new object as a copy of an existing object of the same type. Frequently copy constructors do a 'deep copy' of the object. X( const X& X_object ){...}; is a copy constructor for class X.
Deep Copy vs. Shallow Copy:
a shallow copy simply copies the contents of an object directly - if the object contains pointers, both the old copy and the new copy contain pointers to the same actual item. In a deep copy, when an object contains a pointer, a new copy of whatever the pointer points AT is created and the new object contains a pointer to the newly created copy of the item.
Why are deep copies important? If you carry out a shallow copy you end up with two pointers to the same item. If that item is an object with a destructor, this generally means you'll end up calling the destructor for that item twice, which will generally cause problems.
Unfortunately, most don't know to ask this question directly: the symptom is generally heap corruption which is hard to track down directly since there it has many possible causes.
| Is This Answer Correct ? | 0 Yes | 0 No |
In the C++ programming language, a copy constructor is a special constructor for creating a new object as a copy of an existing object.
| Is This Answer Correct ? | 0 Yes | 0 No |
What do you mean by stack unwinding in c++?
What are the 4 types of library?
What are the rules about using an underscore in a c++ identifier?
Write a C++ Program to Generate Random Numbers between 0 and 100
In int main(int argc, char *argv[]) what is argv[0] a) The first argument passed into the program b) The program name c) You can't define main like that
What is the copy-and-swap idiom?
When can you tell that a memory leak will occur?
How are Structure passing and returning implemented by the compiler?
In which situation the program terminates before reaching the breakpoint set by the user at the beginning of the mainq method?
What is the type of 'this' pointer?
How a new operator differs from the operator new?
Do you need a main function in c++?