Write a program to demonstrate the use of a deep copy.
#include<iostream> using namespace std; class A { private: int *x; public: A() { cout << "default constructor" << endl; } A(int *p) { cout << "parameterized constructor" << endl; x = new int; *x = *p; } A(A& ob) { cout << "copy constructor" << endl; x = new int; *x = *(ob.x); } ~A() { cout << "destructor" << endl; } void modify() { *x = 50; } void print() { cout << "*x = " << *x << endl; } }; int main() { int x = 21; int *p = &x; A obj1(&x); A obj2 = obj1; obj1.print(); obj2.print(); obj1.modify(); obj1.print(); obj2.print(); return 0; }
Output
parameterized constructor copy constructor *x = 21 *x = 21 *x = 50 *x = 21 destructor destructor