0

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?

Haxify
  • 419
  • 4
  • 9
  • 17

0 Answers0