rendered paste body#ifndef A_H_
#define A_H_
class A
{
public:
A();
virtual ~A();
};
#endif /*A_H_*/
#ifndef B_H_
#define B_H_
#include "A.h"
#include "C.h"
class B : public A
{
public:
B();
virtual ~B();
void foo();
private:
C* c;
};
#endif /*B_H_*/
#ifndef C_H_
#define C_H_
#include "A.h"
class B;
class C
{
public:
C(A *a);
virtual ~C();
private:
B *b;
};
#endif /*C_H_*/
************** SOURCE FILES *******************
#include "A.h"
A::A()
{
}
A::~A()
{
}
#include "B.h"
B::B()
{
}
B::~B()
{
}
void B::foo() {
}
#include "C.h"
C::C(A *a)
{
this->b = reinterpret_cast<B*>(a);
}
C::~C()
{
b->foo();
}