Как включить struct
, указанный во внешнем файле заголовка, в другой файл? Сначала я передал структуру по указателю, поэтому мне нужно было только объявление вперед. Но теперь я хочу пройти по значению и не могу скомпилировать его. Заголовок lagerverwaltung.h
содержит структуру, поэтому в чем проблема?Включить структуру из заголовка
lagerverwaltung.h
файл:
#ifndef LAGERVERWALTUNG_H
#define LAGERVERWALTUNG_H
struct etikettInfo{
QString userName;
QList<struct properties_content *> inhalte;
};
class Lagerverwaltung : public QMainWindow
{
Q_OBJECT
... and so on
};
#endif // LAGERVERWALTUNG_H
файл etikett1.h
:
#ifndef ETIKETT1_H
#define ETIKETT1_H
#include "lagerverwaltung.h" // for struct etikettInfo
class Lagerverwaltung;
//struct etikettInfo;
namespace Ui {
class Etikett1;
}
class Etikett1 : public QMainWindow
{
Q_OBJECT
public:
explicit Etikett1(Lagerverwaltung *mainwindow,
etikettInfo etikettData, // <- struct etikettInfo has not been declared
QWidget* parent = 0);
~Etikett1();
private:
Ui::Etikett1 *ui;
Lagerverwaltung *lgrvw;
etikettInfo etikettData; // <- struct etikettInfo does not name a type
};
#endif // ETIKETT1_H
Если это имеет значение: Обе .h-файлы действительно должны включать в себя охрану.
ОК сообщения об ошибках (см. Комментарии в коде) на самом деле довольно описательные, но я не знаю, что я должен делать по-другому.
В etikett1.h вы включаете lagerverwaltung.h, который содержит 'struct etikettInfo' и' class Lagerverwaltung'. И сразу после этого вы повторно объявляете 'class Lagerverwaltung'. Мне кажется, что это плохо. Также: пожалуйста, напишите (соответствующее) сообщение об ошибке. – KompjoeFriek
Сообщение об ошибке находится внутри кода (комментарии). – user2366975
Почему бы не создать файл 'etikettInfo.h', поместите там структуру и включите ее там, где она вам нужна? (ps: denglish силен в вас) – Zaiborg