mokynis
|
|
« : Сентябрь 28, 2009, 08:54 » |
|
В книге во второй главе приводится пример предварительного объявления классов. Я попробовал сделать что-то похожее- не получилось. Вот код: ////dialogimpl.h #ifndef DIALOGIMPL_H #definr DIALOGIMPL_H #include<QDialog> #include "ui_dialog.h" #include <QVector> //class QVector<int>; //если без <int>, пишет, что нужен шаблон, если с <int>, то при объявлении //ivec пишет, что вектор имеет "неполный тип" class DialogImpl:public QDialog,public Ui::Dialog { Q_OBJECT public: DialogImpl(QWidget *parent=0,Qt::WFlags f=0); private: QVector,int> ivec; private slots: void fillVec(); }; #endif
////dialogimpl.cpp #include "dialogimpl.h" #include<QDebug> DialogImpl::DialogImpl(QWidget *parent,Qt::WFlags f):QDialog(parent,f) { setupUi(this); connect(Button,SIGNAL(clicked()),this,SLOT(fillVec())); } void DialogImpl::fillVec() { ivec.push_back(2); qDebug()<<ivec[0]; }
в общем, все работает, только если в .h-файле включаю QVector.h если, как рекомендует Бланшет (правильно, между прочим, рекомендует), то выдает ошибки. Подскажите, как правильно предварительно объявить класс, а то если несколько файлов, да в каждом нужно упомянуть вектор, так не включать же его библиотеку везде?
|