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
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)  {  } 
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With