J'écris un moteur de jeu (en utilisant des librairies SFML) et je n'arrive pas à faire marcher ça. J'écris la partie GUI du code et je veux déclarer un objet de la même classe en lui-même (parent/enfant afin que je puisse lier des objets ensemble). Je ne peux pas faire ceci à moins que la classe soit finie instanciée. Existe-t-il une manière improvisée de forcer les variables enfant et parent à fonctionner d'une façon ou d'une autre?Déclarer un objet en tant que variable membre de lui-même
#ifndef ELEMENT_H
#define ELEMENT_H
#include <iostream>
class Element
{
public:
Element();
private:
int id, position_x, position_y, pixel_x, pixel_y, width, height;
Element parent;
std::vector<Element> child;
};
#endif // ELEMENT_H
erreur que je reçois:
include\Element.h|13|error: field 'parent' has incomplete type 'Element'|
Si vous pouviez faire cela, 'Element' aurait une taille infinie. – melpomene
Ooh, bon point .. Et si je leur faisais des pointeurs non déclarés? – Honor
Le fichier d'implémentation existe-t-il? Si ce n'est pas le cas, vous pouvez changer de parent pour être une référence: 'Element & parent' et l'avoir initialisé dans la liste d'initialisation du constructeur. – Jezor