crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> class QPushButton вместо include <QPushButton>, class VS #include
dsp
  опции профиля:
сообщение 9.2.2011, 0:14
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 51
Регистрация: 12.10.2010
Пользователь №: 2109

Спасибо сказали: 4 раз(а)




Репутация:   0  


Подскажи пожалуйста.
В разных примерах программ на Qt классы виджетов не добавляются через инклуд

т.е.

#include <QPushButton>
#include <QLabel>
,

а пишутся так:

class QPushButton;
class QLabel;


и т.д.

с чем это связано? и что использовать?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
igor_bogomolov
  опции профиля:
сообщение 10.2.2011, 19:34
Сообщение #2


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


to Алексей1153
Цитата(Litkevich Yuriy @ 9.2.2011, 6:19) *
Если же ты используешь класс для наследования, или для создания переменной на стеке (обычной) или используешь члены некого класса, то придётся использовать инклюд. Иначе компилятор не будет ничего знать об особенностях класса.
Цитата(Алексей1153 @ 10.2.2011, 8:16) *
class QMyLineEdit;
struct QMyLineEditWrapper
{    
    QMyLineEdit* p;    
    QMyLineEditWrapper(QWidget* parent=0);
};
Не увидел в приведенном коде не наследования, ни создания переменной на стеке ни использования членов другого класса.
Юрий пытался объяснить ТС при каких условиях можно использовать предварительное объявление, при каких нет. Ты же как как всегда перевернул всё с ног на голову.

to Алексей1153, to kwisp
Да в пимпл без предварительного объявления никуда, и поговорить про это интересно. Вот только ТС спрашивал не про это.
Тут скорее можно было написать, что в некоторых случаях без предварительного объявления не обойтись, и показать это на примере пимпла. А вот говорить что можно отнаследоваться от класса class QMyLineEdit:public QLineEdit не сделав в том же файле includ не правильно.

to Алексей1153
Цитата
Цель пимпла: сделать содержимое хидера реально видимым только в файле реализации
Ты путаешь цели и средства достижения цели. То о чем ты говоришь - это средство/способ решения, а цели у пимпла другие.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- dsp   class QPushButton вместо include <QPushButton>   9.2.2011, 0:14
- - Алексей1153   это форварды (предопределения) классов для возможн...   9.2.2011, 0:31
- - igor_bogomolov   Это называется "предварительное объявление кл...   9.2.2011, 0:39
- - Litkevich Yuriy   Существенная оговорка. Предварительное объявление ...   9.2.2011, 6:19
- - Алексей1153   Цитата(dsp @ 9.2.2011, 2:14) class VS #in...   9.2.2011, 9:03
- - Litkevich Yuriy   Цитата(Алексей1153 @ 9.2.2011, 11:03) .но...   9.2.2011, 20:40
- - Алексей1153   Litkevich Yuriy, например так хотим класс QMyLin...   10.2.2011, 8:16
- - kwisp   Цитата(Litkevich Yuriy @ 9.2.2011, 20:40)...   10.2.2011, 10:29
- - Rocky   Цитата(Алексей1153 @ 9.2.2011, 10:03) Цит...   10.2.2011, 11:28
- - Алексей1153   Rocky, Цитата(Rocky @ 10.2.2011, 13:28) ...   10.2.2011, 11:33
- - Rocky   Цитата(Алексей1153 @ 10.2.2011, 12:33) Ци...   10.2.2011, 11:51
- - Алексей1153   Цитата(Rocky @ 10.2.2011, 13:51) Алексей1...   10.2.2011, 12:21
- - igor_bogomolov   to Алексей1153 Цитата(Litkevich Yuriy @ 9.2.2...   10.2.2011, 19:34
- - Rocky   igor_bogomolov, спасибо, хоть ты понял что я пытал...   10.2.2011, 20:04
- - Алексей1153   igor_bogomolov, мы просто напросто в ненужные дебр...   10.2.2011, 20:10
- - kwisp   по-моему вы ребята уже предвзято к друг другу отно...   11.2.2011, 10:58
- - Алексей1153   Цитата(kwisp @ 11.2.2011, 12:58) по-моему...   11.2.2011, 11:22
- - Litkevich Yuriy   Резюме: Если класс наследник другого, то заголовоч...   12.2.2011, 12:47


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 2.12.2024, 3:05