Given following classes:
// myClass.hpp
class Child1;
class Child2;
class MyClass {
  public:
    virtual void doSomething (const MyClass&) const = 0;
    virtual void doSomething (const Child1&) const = 0;
    virtual void doSomething (const Child2&) const = 0;
};
// child1.hpp
#include "myClass.hpp"
class Child1 : public MyClass {
  public:
    virtual void doSomething (const MyClass&) const override;
    virtual void doSomething (const Child1&) const override;
    virtual void doSomething (const Child2&) const override;
};
// child2.hpp
#include "myClass.hpp"
class Child2 : public MyClass {
  public:
    virtual void doSomething (const MyClass&) const override;
    virtual void doSomething (const Child1&) const override;
    virtual void doSomething (const Child2&) const override;
};
The compiler gives me the errors:
undefined reference to 'Child1::doSomething(MyClass const&)'
The same error is printed for the other doSomething(..) functions.
I'm sure there is some mistake in including files (I use include guards for every header-file!!). My questions are: Where do I have to include the corresponding files and where do I need forward declaration?
 
     
     
    