Я создал класс myClass
и чтобы скрыть участников, использовал d-pointer, но получил ошибку при компиляции моего кода. Вот код:Как сделать d-указатель справа в Qt
Заголовок файла:
class myClassPrivate;
class myClass : public QObject
{
Q_OBJECT
public:
myClass(QObject *parent = 0);
~myClass();
...
signals:
public slots:
private:
myClassPrivate *d;
};
и связанной с .cpp
myClass::myClass(QObject *parent):
QObject(parent),
d(new myClassPrivate())
{
}
myClass::~myClass()
{
delete d;
}
class myClassPrivate
{
public:
myClassPrivate();
...some methods...
QTextStream stream;
QFile* m_File;
};
myClassPrivate::myClassPrivate():
m_File(new QFile)
{
}
Он говорит: опережающее объявление о 'STRUCT myClassPrivate'; Недопустимое использование неполного типа 'myClassPrivate'
Хорошо, спасибо, и я могу создать деструктор в myClassPrivate, чтобы освободить (m_File), или нет необходимости ... – elgolondrino
Да, вы можете и * должны * создать ' ~ myClassPrivate' destructor 'delete'ing' QFile' - иначе вы будете утечка памяти! –