Russian Qt Forum
Ноябрь 25, 2024, 00:19 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Бланшет-предварительное объявление класса  (Прочитано 4308 раз)
mokynis
Самовар
**
Offline Offline

Сообщений: 176


Просмотр профиля
« : Сентябрь 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
если, как рекомендует Бланшет (правильно, между прочим, рекомендует), то выдает ошибки.
Подскажите, как правильно предварительно объявить класс, а то если несколько файлов, да в каждом нужно упомянуть вектор, так не включать же его библиотеку везде?
Записан

QT4, Qt5, Qt6 Debian, ArchLinux
SimpleSunny
Гость
« Ответ #1 : Сентябрь 28, 2009, 09:29 »

template <typename T> class QVector;
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #2 : Сентябрь 28, 2009, 09:56 »

>> QVector,int> ivec;
ты создаешь обычную переменную, а не указатель.

П.С. это уже обсуждалось, поищи по форуму
Записан

Юра.
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.154 секунд. Запросов: 23.