Saltar al contenido

¿Qué es el “error C2061: error de sintaxis: identificador”?

Solución:

Tiene una dependencia de inclusión circular. Collision.h incluye Player.hy viceversa. La solución más sencilla es eliminar #include "Collision.h" de Player.h, ya que el Collision la clase no es necesaria en el Player declaración. Además de eso, parece que algunas de tus inclusiones en Collision.h puede ser reemplazado por declaraciones futuras:

// forward declarations
class Player;
class Platform;

class Collision
{
public:
  Collision(void);
  ~Collision(void);
  static bool IsCollision(Player &player, Platform& platform);
};

A continuación, puede poner las inclusiones en Collisionarchivo de implementación.

Ese es un error bastante común: tiene dependencia circular de inclusión.

Mirando su código, debe reemplazar #include "Player.h" con class Player; en Collision.h. Esto se llama “declaración de avance” y romperá la dependencia circular.


Además, sería bueno agregar protectores de inclusión, por ejemplo:

#ifndef MY_PLAYER_CLASS
#define MY_PLAYER_CLASS

...

#endif

Y esto debe hacerse para cada encabezado que escriba.

Dependencia circular o está utilizando un compilador C para código C ++

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *