Constructor in C++

Find this useful? Support us: Star on GitHub 6
Category: Class | Language: C++

In C++, a constructor is a special member function that is automatically called when an object of a class is created. The constructor is used to initialize the object's data members and set up the object's initial state.

Here are some examples of how to use a constructor in C++:

1. Default Constructor:

A default constructor is a constructor with no arguments and no parameters. Here is an example of a class with a default constructor:

class MyClass {
public:
    MyClass() {
        // constructor code here
    }
};

In this example, the constructor is empty and does not initialize any data members.

2. Parameterized Constructor:

A parameterized constructor is a constructor that takes one or more arguments. Here is an example of a class with a parameterized constructor:

class MyClass {
public:
    int x;
    MyClass(int initial_x) {
        x = initial_x;
    }
};

In this example, the constructor takes an integer argument that is used to initialize the object's x data member.

3. Copy Constructor:

A copy constructor is a constructor that takes a reference to another object of the same class and creates a new object with the same data. Here is an example of a class with a copy constructor:

class MyClass {
public:
    int x;
    MyClass(const MyClass& other) {
        x = other.x;
    }
};

In this example, the copy constructor takes a reference to another MyClass object and copies its x data member to the new object.

4. Constructor Initialization List:

A constructor initialization list is used to initialize data members of a class directly in the constructor's signature. Here is an example of a class using a constructor initialization list:

class MyClass {
public:
    int x;
    double y;
    MyClass(int initial_x, double initial_y) : x(initial_x), y(initial_y) {
        // constructor code here
    }
};

In this example, the constructor takes two arguments and uses a constructor initialization list to initialize the x and y data members.