كيفية إصلاح أخطاء الترجمة الناتجة عن التبعية الدائرية للكلاسات في C++؟
مرحباً بالجميع! أنا أكتب لعبة بسيطة بلغة C++ وواجهت مشكلة لم أستطع حلها منذ عدة ساعات.\n\nلدي كلاسان: `Player` (لاعب) و `Enemy` (عدو). يجب أن يكون اللاعب قادراً على مهاجمة العدو، والعدو يجب أن يعرف عن اللاعب لملاحقته. أحاول جعل كل كلاس يحتوي على pointer إلى الكلاس الآخر.\n\nإليك الكود المبسط:\n\n**Player.h:**\n```cpp\n#ifndef PLAYER_H\n#define PLAYER_H\n#include "Enemy.h"\n\nclass Player {\npublic:\n void attack(Enemy* e);\n int health;\n};\n#endif\n```\n\n**Enemy.h:**\n```cpp\n#ifndef ENEMY_H\n#define ENEMY_H\n#include "Player.h"\n\nclass Enemy {\npublic:\n void chase(Player* p);\n int health;\n};\n#endif\n```\n\n**Player.cpp:**\n```cpp\n#include "Player.h"\nvoid Player::attack(Enemy* e) {\n e->hea