Error : base class constructor must explicitly initialize parent class constructor

c++, constructor, derived-class, initialization

Solution

The parent class has an explicit constructor, so compiler will not add an implicit 'empty' constructor to it. Additionally your constructor has a parameter, so compiler can not generate an implicit call to it. That's why you must do it explicitly.

This way:

 child::child(int a) : parent(a)
 {
 }

Problem

I am new to c++. When I try to compile the code below , I get this error `constructor for 'child' must explicitly initialize the base class 'parent' which does not have a default constructor child::child(int a) {` here is my class ``` #include<iostream> using namespace std; class Parent { public : int x; Parent(int a); int getX(); }; Parent::Parent(int a) { x = a; } int Parent::getX() { return x; } class Child : public Parent { public: Child(int a); }; Child::Child(int a) { x = a; } int main(int n , char *argv[]) { } ``` Why I am getting this error ? How can I resolve it ? Thanks in advance

Original source