Ошибка предварительного объявления

Рейтинг: 0Ответов: 1Опубликовано: 09.04.2015

Есть два окна.

mainwindow.h:

#include "algorithmdialog.h"
class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    AlgorithmDialog* algDialog;
...
};

algorithmdialog.h:

class MainWindow;
// class MainWindow : public QMainWindow;

class AlgorithmDialog : public QDialog
{
public:
    MainWindow * mainWindow;
...
}

При компиляции дает ошибки

algorithmdialog.cpp:58: ошибка: invalid use of incomplete type 'class MainWindow'
algorithmdialog.h:15: ошибка: forward declaration of 'class MainWindow'

Вроде все указано правильно, с закоменченным вариантом тоже не собирается, полазил по форумам, не нашел нужных решений, думаю все дело в том, что второй файл подключается в первый, как решить проблему? И в чем она состоит? Заранее спасибо.

Ответы

▲ 3Принят

В обоих заголовочных надо вставить предварительную декларацию друг на друга, а в файлах реализации указать заголовочные.