Есть вот такой простой класс:
define FORMATTER_H
#include <QObject>
#include "../Editor.h"
#include "../EditorConfig.h"
#include "../EditorTextArea.h"
class Formatter : public QObject
{
Q_OBJECT
public:
explicit Formatter(QObject *parent = 0);
void setEditor(Editor *iEditor); // <-- Здесь ошибка
void setTextArea(EditorTextArea *iTextArea);
private:
Editor editor; // <-- И здесь ошибка
EditorConfig *editorConfig;
EditorTextArea *textArea;
};
#endif // FORMATTER_H
При его компиляции вылезают ошибки, что неизвестен класс Editor. Но я же его инклюдю, чего еще надо то? Ошибки следующие:
In file included from ../mytetra/src/libraries/wyedit/Editor.h:19:0,
from ../mytetra/src/views/record/MetaEditor.h:8,
from ../mytetra/src/views/recordTable/RecordTableScreen.cpp:12:
../mytetra/src/libraries/wyedit/formatters/Formatter.h:22:18: error: 'Editor' has not been declared
void setEditor(Editor *iEditor);
^
../mytetra/src/libraries/wyedit/formatters/Formatter.h:27:3: error: 'Editor' does not name a type
Editor editor;
^
Пробовал не инклюдить, а прописывать предварительное описание класса через служебное слово class. А инклюд размещал не в заголовке, а в реализации. Проблема все равно остается.
Репозитарий:
https://github.com/xintrea/mytetra_dev/commits/editorModification
Коммит:
fc543909e727ee9dd4bccbeaa856512fbfae8f58
Как избавиться от этой ошибки?
ЗЫЖ После исправления, там скорее всего будут другие ошибки, потому что много чего переделал относительно предыдущего коммита. Но мне бы избавиться от той что в топике.