'SceneElement' не был объявлен в этой области

Я хочу использовать выделение в своем трехмерном средстве просмотра, и я попробовал этот пример, но столкнулся со следующей проблемой:

ошибка: 'SceneElement' не был объявлен в этой области QList sceneElements;

файл scene.h:

#ifndef SCENE_H
#define SCENE_H
 #include <sceneelement.h>
#include <QGLViewer/qglviewer.h>

class Scene
{

private:
    /// The list of elements that make up the scene

 QList <SceneElement*> sceneElements ;

public:
     Scene();
    /// Creates a scene with RenderElements positionned on a regular grid.
    /// Consider increasing selectBufferSize() if you use more RenderElements.

    void draw();
    void setSelected(int i);
    void drawWithNames();
void clearSelection();
};

файл sceneelement.h:

#include <QGLViewer/qglviewer.h>
#include <viewer.h>

class SceneElement
{

    friend class Scene;
private:

    qglviewer::Frame frame;
    bool isSelected;


public:
    /// Constructor
    SceneElement(float x, float y){
        isSelected=false;
        qglviewer::Vec pos(x,y,0.0);
        frame.setPosition(pos);
    }
    /// Draws this element
    void draw() const;

};

Я не знаю, почему он не может использовать SceneElement, хотя я включил sceneelement.h

Я ценю любую помощь, спасибо.

1 ответ

Это предложение решает мою проблему. Похоже, у вас круговая зависимость. Попробуйте добавить класс SceneElement для прямого объявления перед строкой класса Scene в scene.h - Ромха Кореев

Другие вопросы по тегам