I have these files;
in Base1.h,
#ifndef BASE1_H
#define BASE1_H
#include "Base2.h"
class Base2;
class Base1 {
...
void func1(Base2 *b);
...
};
and in Base2.h,
#ifndef BASE2_H
#define BASE2_H
#include "Base1.h"
class Base1;
class Base2 {
...
void func2(Base1 *b);
...
};
then, problems occur in 3rd header file, which contains a derived class of Base2 that uses derived classes of Base1. In Base2_Derived1.h,
#ifndef BASE2_DERIVED1_H
#define BASE2_DERIVED1_H
#include "Base2.h"
// Do I need these forward declarations?
class Base1_Derived1;
class Base1_Derived2;
class Base1_Derived3;
class Base1_Derived4;
class Base1_Derived5;
class Base2_Derived1 : public Base2 {
...
void a(Base1_Derived1 *b1);
void b(Base1_Derived2 *b2);
void c(Base1_Derived3 *b3);
...
};
I'm a little bit confused by all the headers of base classes and derived classes, and I'm not sure how to include them so I get no errors.
Should I just include Base1_Derived1.h, Base1_Derived2.h and so on in Base2_Derived1.h?