Search code examples
c++c++11inheritanceheaderparent-child

how to specify constructor in header for child and parent class


I am new to C++ and define a parent class in a header file parent.h. It has a constructor Parent(int a, int b).

Now I want to write the header file for the child class child.h, which inherits the exact same constructor as the parent class and only has additional member functions.

Do I have to specify the constructor in the child's header file as well? (Child(int a, int b)) Or do I only specify the signatures for the additional member functions and specify the constructor in the corresponding child.cppfile?


Solution

  • Constructors aren’t inherited. Therefore, if you want your child class to have the specified constructor you will need to provide it explicitly inside your class definition:

    …
    Child(int a, int b) : Parent(a, b) {}
    …
    

    Or pull in the definition from the parent class:

    using Parent::Parent;
    

    Note that this will pull in all constructor overloads. This may not be what you intended.