#include<iostream>
#include<array>
#include <algorithm>
using namespace std;
class Array{
    //declaring a array
    public: int a[4];
    public: int num;
    public:
    Array() {
        //initializing a array
    a[0] = 1;
    a[1] = 2;
    a[2] = 3;
    a[3] = 4;
    }
    Array(const Array &NewObj){
      a = new int[4];
    for (int i = 0; i < 4; i++)
        a[i] = NewObj.a[i];
    }
};  
int main()
{
    cout<<" DEEP COPY : \n";
    cout<<"============ \n";
    //creating first object
    Array obj1;
    //changing value of a array at index 3
    obj1.a[3]=15;
    //declaring second object which is mapped by object 1
    Array obj2(obj1);
    
    
 cout << "Object 1: \n";
    //printing values of a array
    for(int i=0;i < (sizeof(obj1.a) / sizeof(obj1.a[0])); i++){
        cout<<obj1.a[i];
        cout << "\n";
        }
     cout << "Object 2: \n";
    for(int i=0;i < (sizeof(obj2.a) / sizeof(obj2.a[0]));i++){
        cout<<obj2.a[i];
         cout << "\n";
    }
    return 0;
}
when creating a deep copy of a variable :
 a = new int[4];
I received the error: expression must be a modifiable lvalue at this line.
The primary program's purpose is to make a deep copy of an array.
I started by defining the class and declaring an array.
Then I wrote a constructor () { [native code] } that initialises an array.
Then I wrote a copy constructor () { [native code] } in which I built a new array in which the values could be saved, but it failed with an exception about editable values.
 
     
    