Answer Posted / hemanth
Deep Copy and Shallow Copy
The terms "deep copy" and "shallow copy" refer to the way
objects are copied, for example, during the invocation of a
copy constructor or assignment operator. In a deep copy
(also called "memberwise copy"), the copy operation
respects object semantics. For example, copying an object
that has a member of type std::string ensures that the
corresponding std::string in the target object is copy-
constructed by the copy constructor of class std::string.
class A
{
string s;
};
A a;
A b;
a=b; //deep copy
When assigning b to a, the compiler-generated assignment
operator of class A first invokes the assignment operator
of class std::string. Thus, a.s and b.s are well-defined,
and they are probably not binary-identical. On the other
hand, a shallow copy (also called "bitwise copy") simply
copies chunks of memory from one location to another. A
memcpy() operation is an example of a shallow copy. Because
memcpy() does not respect object semantics, it will not
invoke the copy constructor of an object. Therefore, you
should never use memcpy() to copy objects. Use it only when
copying POD (Plain Old Data) types: ints, floating point
numbers, and dumb structs.
| Is This Answer Correct ? | 4 Yes | 0 No |
Post New Answer View All Answers
How long to learn object oriented programming?
What are the 3 pillars of oop?
Write a program to sort the number with different sorts in one program ??
What does <> mean pseudocode?
What are constructors in oop?
How to improve object oriented design skills?
#include
2. Give the different notations for the class.\
How do you explain polymorphism?
What is object and example?
Can destructor be overloaded?
what is the sylabus for priliminaries?
What is overriding vs overloading?
Who invented oop?
What is ambiguity in inheritance?