我正在编写一个游戏引擎(使用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'|
答案 0 :(得分:1)
你不能像在那里一样声明一个www.myHostDomain.com/mySpecifiedFormAction?myFirstFormField=myFirstFormValue&mySecondFormField=mySecondFormValue
类型的集合变量。
但是,您可以拥有一个包含数据成员的类,该成员对自身指针 ...
Class <x>
答案 1 :(得分:1)
如果你想使用c ++ 11 / boost的智能指针功能,你可以parent
类型Element*
(或std::shared_ptr<Element>
)
你能想象一个元素里面有一个元素并且里面有一个元素的问题吗?它永远不会结束。通常,像这样的链有一个root
元素,其中parent = NULL
。