Copy constructor

suggest change

Copy constructor on the other hand , is the complete opposite of the Assignment Constructor. This time, it is used to initialize an already nonexistent(or non-previously initialized) object. This means it copies all the data from the object you are assigning it to , without actually initializing the object that is being copied onto. Now Let’s take a look at the same code as before but modify the assignment constructor to be a copy constructor :

#include <iostream>
#include <string>

using std::cout;
using std::endl;

class Foo
    Foo(int data)
        this->data = data;    
    Foo(const Foo& rhs)
            data =; 

    int data;

int main()
   Foo foo(2); //Foo(int data) called
   Foo foo2 = foo; // Copy Constructor called
   cout << << endl;

You can see here Foo foo2 = foo; in the main function I immediately assign the object before actually initializing it, which as said before means it’s a copy constructor. And notice that I didn’t need to pass the parameter int for the foo2 object since I automatically pulled the previous data from the object foo. Here is an example output :

Feedback about page:

Optional: your email if you want me to get back to you:

Table Of Contents