The copy constructor is used for creation of object based on another's instance of the same type. You don't have such. You can define it using code like this:
A(const A &other)
{
myArray = new int[other._size];
_size = other._size;
memcpy(myArray, other.myArray, sizeof(int) * _size);
}
You should change your class, so it will store _size of array, you also need to change visibility of your constructors and destructor to public.
The overloaded assignment operator should look like this:
const A &operator=(const A &other)
{
if(this == &other) return *this; // handling of self assignment, thanks for your advice, arul.
delete[] myArray; // freeing previously used memory
myArray = new int[other._size];
_size = other._size;
memcpy(myArray, other.myArray, sizeof(int) * _size);
return *this;
}
You also can add a check of equality of array sizes in this assignment operator, so you will reuse your dynamic array without unnecessary reallocations of memory.