rendered paste body************************* HEADER FILES ********************#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();}