I want to know the difference between the Class(const Class & c) constructor and the Class(Class & c) constructor in C++.
class Class
{
public:
    Class()
    {
       cout << "running Class()..." << endl;
    }
    Class(Class& c)
    {
        cout << "running Class(Class& c)..." << endl;
    }
    Class(const Class& c)
    {
        cout << "runing Class(const Class& c)..." << endl;
    }
};
Class is defined as above.
I know that Class(const Class& c) is a copy constructor. It will be called when new Class object is created. For example:
Class c;  // output->running Class()...
Class cc(c); // output->runing Class(const Class& c)...
Now, I want to know  when the Class(Class& c) constructor will be called.
 
     
    