Answer Posted / rajk
A shallow copy of an object copies all of the member field
values. This works well if the fields are values, but may
not be what you want for fields that point to dynamically
allocated memory. The pointer will be copied. but the
memory it points to will not be copied -- the field in both
the original object and the copy will then point to the
same dynamically allocated memory, which is not usually
what you want. The default copy constructor and assignment
operator make shallow copies.
A deep copy copies all fields, and makes copies of
dynamically allocated memory pointed to by the fields. To
make a deep copy, you must write a copy constructor and
overload the assignment operator.
Deep copy needs,
If an object has pointers to dynamically allocated memory,
and the dynamically allocated memory needs to be copied
when the original object is copied, then a deep copy is
required.
A class that requires deep copies will generally need:
i )a destructor to delete the dynamically allocated memory.
ii) a copy constructor to make a copy of the dynamically
allocated memory.
iii) an overloaded assignment operator to make a copy of
the dynamically allocated memory.
| Is This Answer Correct ? | 20 Yes | 0 No |
Post New Answer View All Answers
What are the 5 oop principles?
What are the advantages of polymorphism?
Can we create object of interface?
when to use 'mutable' keyword and when to use 'const cast' in c++
What is the important feature of inheritance?
Why do we use class?
What is object-oriented programming? Webopedia definition
Explain the advantages of inheritance.
What is abstraction in oop with example?
What is oops with example?
Which is better struts or spring?
write a program using c++ to implement single contiguous memory mangement techniques.display the content of the main memory after yhe allocation of jobs and percentage of the wastage of the main memory
What is abstraction in oop?
What are classes oop?
What is overloading in oop?