Я пишу игровой движок (используя библиотеки SFML), и я не могу заставить его работать. Я пишу часть кода GUI, и я хочу объявить объект одного и того же класса внутри себя (parent/child, чтобы я мог связать объекты вместе). Я не могу этого сделать, если класс не будет создан. Есть ли какой-то временный способ, которым я могу заставить дочерние и родительские переменные как-то работать?Объявление объекта как переменной-члена самого себя
#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
Я получаю ошибку:
include\Element.h|13|error: field 'parent' has incomplete type 'Element'|
Если бы вы могли это сделать, элемент Element имел бы бесконечный размер. – melpomene
OOoh, хорошая точка .. Что делать, если я сделал их необъявленными указателями? – Honor
Имеется ли файл реализации? Если это не так, вы можете изменить родительский объект как ссылку: 'Element & parent' и инициализировать его в списке инициализации конструктора. – Jezor