>>>>>>>>>>>>>>> main.cpp #include "SceneGraph.h" #include "Entity.h" int main() { Entity e; SceneGraph* graph = new SceneGraph(); graph->deleteE(&e); } >>>>>>>>>>>>>>>>> SceneGraph.h #ifndef SCENEGRAPH_H #define SCENEGRAPH_H #include using namespace std; class Entity; class SceneGraph { public: void deleteE(Entity* e); void print(string s); }; #endif >>>>>>>>>>>> SceneGraph.cpp #include "SceneGraph.h" #include "Entity.h" #include #include void SceneGraph::deleteE(Entity* e) { e->deleteE(this); } void SceneGraph::print(string s) { cout << s << "\n"; } >>>>>> Entity.h #ifndef ENTITY_H #define ENTITY_H class SceneGraph; class Entity { public: void deleteE(SceneGraph* e); }; #endif >>>>>>>>>> Entity.cpp #include "Entity.h" #include "SceneGraph.h" void Entity::deleteE(SceneGraph* graph) { graph->print("entity::delete()"); }