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