【发布时间】:2016-06-24 15:59:10
【问题描述】:
我正在编写一个游戏引擎(使用 SFML 库),但我似乎无法让它工作。我正在编写代码的 GUI 部分,我想在自身内部声明一个相同类的对象(父/子,以便我可以将对象链接在一起)。除非类完成实例化,否则我不能这样做。是否有某种临时方法可以强制子变量和父变量以某种方式工作?
#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将拥有无限大小。 -
哦,好点子.. 如果我将它们设为未声明的指针会怎样?
-
实现文件是否存在?如果没有,您可以将 parent 更改为引用:
Element& parent并在构造函数初始化列表中对其进行初始化。
标签: c++ recurrence class-members