Есть два класса, class1 и class2.
У обоих классов есть атрибут, хранящий указатель на экземпляр другого класса.
Лично я не вижу никаких логических проблем для этого(может быть изза неопытности), но компилироваться это отказывается.
вот код:
class1.h:
#ifndef CLASS1_H
#define CLASS1_H
#include <QObject>
#include "class2.h"
class class1 : public QObject
{
Q_OBJECT
class2* o;
public:
explicit class1(QObject *parent = 0);
signals:
public slots:
};
#endif // CLASS1_H
class2.h то же самое, только наоборот:
#ifndef CLASS2_H
#define CLASS2_H
#include <QObject>
#include "class1.h"
class class2 : public QObject
{
Q_OBJECT
class1* o;
public:
explicit class2(QObject *parent = 0);
signals:
public slots:
};
#endif // CLASS2_H
текст ошибки:
In file included from ../untitled6/class1.h:5,
from ../untitled6/class1.cpp:1:
../untitled6/class2.h:9: error: ISO C++ forbids declaration of 'class1' with no type
../untitled6/class2.h:9: error: expected ';' before '*' token
Компилятор спотыкается на том месте где class2 объявляет член-указатель еа class1, мол такой класс не объявлен, хотя заголовок "class1.h" включен.
Буду очень благодарен за объяснение в чем я затупил.