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