We define copy constructor using A(const A & obj)
A(const A & obj
Why reference (&) is needed? Why we are not allowed to use.
A(const A obj)
Reference is needed so that we need to access the same instance which the reference is pointing to, otherwise it will create another instance and first of all we need to have const & in the constructor