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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: multiple types in one declaration - как лечить?  (Прочитано 7702 раз)
PulSar.CE3194694
Гость
« : Август 04, 2010, 12:16 »

Добрый день!
Проблема: создал класс для виджета:
Код:
#ifndef PAINTWIDGET_H
#define PAINTWIDGET_H

#include <QWidget>

class PaintWidget : public QWidget
{
    Q_OBJECT
public:
    PaintWidget();
protected:
    void paintEvent(QPaintEvent *event);
signals:
    void CreateTab();
}

#endif // PAINTWIDGET_H
Описал его .cpp файле. Затем в заголовочном файле главного окна программы создал инклуд: #include "PaintWidget.h" и там же в приват секции создал указатель с типом PaintWidget: PaintWidget *MyWidget; Далее в .cpp файле главного окна описал, что с ним делать. Хотел скомпилировать, а он выдал: multiple types in one declaration (сослался на mainwindow.h). Подскажите, плз, как лечить это. Пытался по всякому переписывать, но ничего не получается...((
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #1 : Август 04, 2010, 12:47 »

Цитировать
Затем в заголовочном файле главного окна программы создал инклуд: #include "PaintWidget.h" и там же в приват секции создал указатель с типом PaintWidget: PaintWidget *MyWidget;

Не нужен там #include "PaintWidget.h"! Раз в привате находится указатель на PaintWidget  - то достаточно сверху перед классом MainWindow написать просто: class PaintWidget . А уже в mainwindow.cpp делать инклуд #include "PaintWidget.h".

Т.е.

mainwindow.h

Код:
...
class PaintWidget;

class MainWindow : public ......
{
...
private:
    PaintWidget *MyWidget;
};

mainwindow.cpp

Код:
...
include "PaintWidget.h"
...

MainWindow::MainWindow(...)
{
}
...
« Последнее редактирование: Август 04, 2010, 12:51 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #2 : Август 04, 2010, 12:48 »

Когда описание класса закрывается } (фигурная скобка) надо после нее ; (точка с запятой). Иначе получите фантастические ошибки  Улыбающийся
Записан
PulSar.CE3194694
Гость
« Ответ #3 : Август 04, 2010, 15:14 »

Спасибо! Решено. Именно знак ; я забыл написать! Улыбающийся В замешательстве
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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