'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 - Ромха Кореев