Soy nuevo en C++, por lo que esta pregunta puede ser básica:Dos clases que se refieren entre sí
Tengo dos clases que deben referirse entre sí. Cada uno está en su propio archivo de encabezado, y # include es el archivo de encabezado del otro. Cuando intento compilar, obtengo el error "ISO C++ prohíbe la declaración de 'Foo' sin tipo" para una de las clases. Si cambio las cosas para que el encabezado opuesto sea analizado primero, obtengo el mismo error con la otra clase.
¿Es posible en C++ tener dos clases que necesiten referencias entre sí?
Para más detalles: Tengo una clase de "Aplicación" y una clase "Ventana". La aplicación debe hacer referencia a la ventana para hacer que la ventana. Window tiene un botón que devuelve la llamada a la aplicación, por lo que necesita una referencia a la aplicación. Si no puedo hacer que dos clases se refieran entre sí, ¿hay una mejor manera de implementar esto?
Cabe señalar que las dependencias mutuas deben evitarse cuando sea posible. ¿Tendría sentido factorizar la funcionalidad que los botones llaman en la aplicación en un objeto controlador independiente? –
Este problema lo encuentro a menudo en mis pequeños juegos. Tengo un objeto World que contiene objetos del juego que necesitan hacer referencia al objeto World para, p. Ej. Detección de colisiones. No he encontrado una buena manera de refactorizar eso. (Y por cierto, despertando una discusión de 7 años para ganarme algún tipo de insignia) – Johan