A copy constractor can accept a reference to its own class,where the simple constractor can't? do the job.
Copy Constructor is used to copy the values of one object to another object. Argument for copy constructor is the object of its own class. it can be defined as follows Student(Student S){----} Student is a class. it can be called as follows: Student s1(s2) where s2 values are copied to s1.
the major difference between the copy constructor and the simple constructor is that in copy constructor we are first creating the object instance on which it is called and then we are initializing the values in its member variables. where as in the constructor , we only assign the values to the member variables of the object instance which is already being created.
That is like asking what is the difference between a subset and its superset.
A copy constructor is a type of constructor which has got to adhere to a predefined function prototype i.e. A::A(const A& a) What it does with the input parameter is totally upto to the code inside the constructor but the idea behind the exercise is to initialize the class object using the passed in object of the same class. The default copy constructor does a member wise copy of the input class to the destination class.
the main difference can be explained by taking an example if we hav a=b where a,b are objects of the same class and we declare these objects before hand then we can hav constructor only but if we want to equate these objects while declaring then will hav to use copy constructor.