Answer Posted / naga
Consider two objects, A and B, which each refer to two
memory blocks xi and yi (i = 1, 2,...). Think of A and B as
strings and of xi and yi (i = 1, 2,...) as the characters
they contain.
Shallow copy
One of them is the shallow copy. In this process B is
attached to the same memory block as A. This is otherwise
known as address copy
Deep copy
An alternative is a deep copy. Here the data is actually
copied over.
Example:
class base
{
public:
int i;
base()
{
i=0;
}
base(int j)
{
i=j;
}
};
main()
{
using namespace std;
base *p1=new base(23);
base *p2;
//Shallow copy, here we are using pointers and we are
copying content of one pointer to another.so address will
get copied.
p2=p1; // address is copied
cout<<"\naddress of P1:"<<p1;
cout<<"\nvalue at p1:"<<p1->i;
cout<<"\naddress of P2:"<<p2;
cout<<"\nvalue at p2:"<<p2->i;
delete p2;
cout<<"\naddress of P1 after delete:"<<p1;
cout<<"\nvalue in P2 after delete:"<<p2->i;
//DEEP copy, here we are creating objects and we are
copying content of one object to another.So content will
get copied.
base o1(67);
base o2;
o2=o1;//contents are copied. But, the addresses
remained different
cout<<"\nvalue in o1:"<<o1.i;
cout<<"\nvalue in o2 after copy:"<<o2.i<<endl;
return 0;
}
output:
address of P1:0x00323C88
value at p1:23
address of P2:0x00323C88
value at p2:23
address of P1 after delete:0x00323C88
value in P2 after delete:-572662307
value in o1:67
value in o2 after copy:67
Is This Answer Correct ? | 18 Yes | 1 No |
Post New Answer View All Answers
What are oops functions?
write a program to find 2^n+1 ?
What is pure oop?
what type of question are asked in thoughtworks pair programming round ?
Is data hiding and abstraction same?
What is encapsulation and abstraction? How are they implemented in C++?
What is class in oop with example?
Why do we use oops?
What does enum stand for?
#include
What is the real time example of inheritance?
What exactly is polymorphism?
What is the importance of oop?
Why oops is important?
They started with the brief introduction followed by few basic C++ questions on polumorphism, inheritance and then virtual functions. What is polymorphims? How you will access polymorphic functions in C? How virtual function mechanism works?