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
Write A Program to find the ambiguities in Multiple Inheritance? How are they resolved.(Virtual Functions)
What is abstract class in oops?
Which language is pure oop?
What is abstraction and encapsulation?
What are oops methods?
What are the benefits of oop?
Who invented oop?
can we make game by using c
What do you mean by overloading?
What is protected in oop?
How oops is better than procedural?
What is difference between data abstraction and encapsulation?
Which type does string inherit from?
What is inheritance write a program to show use of inheritance?
What is the real time example of inheritance?