I'm trying to learn c++ and I've stumbled upon a error while trying to figuring out inheritance.
Compiling: daughter.cpp In file included from /home/jonas/kodning/testing/daughter.cpp:1: /home/jonas/kodning/testing/daughter.h:6: error: expected class-name before ‘{’ token Process terminated with status 1 (0 minutes, 0 seconds) 1 errors, 0 warnings
My files: main.cpp:
#include "mother.h" #include "daughter.h" #include <iostream> using namespace std; int main() { cout << "Hello world!" << endl; mother mom; mom.saywhat(); return 0; }
mother.cpp:
#include "mother.h" #include "daughter.h" #include <iostream> using namespace std; mother::mother() { //ctor } void mother::saywhat() { cout << "WHAAAAAAT" << endl; }
mother.h:
#ifndef MOTHER_H #define MOTHER_H class mother { public: mother(); void saywhat(); protected: private: }; #endif // MOTHER_H
daughter.h:
#ifndef DAUGHTER_H #define DAUGHTER_H class daughter: public mother { public: daughter(); protected: private: }; #endif // DAUGHTER_H
and daughter.cpp:
#include "daughter.h" #include "mother.h" #include <iostream> using namespace std; daughter::daughter() { //ctor }
What I want to do is to let daughter inherit everything public from the mother class (=saywhat()). What am I doing wrong?
You forgot to include mother.h
here:
#ifndef DAUGHTER_H #define DAUGHTER_H #include "mother.h" //<--- this line is added by me. class daughter: public mother { public: daughter(); protected: private: }; #endif // DAUGHTER_H
You need to include this header, because daughter
is derived from mother
. So the compiler needs to know the definition of mother
.
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