class QPushButton вместо include <QPushButton>, class VS #include |
Здравствуйте, гость ( Вход | Регистрация )
class QPushButton вместо include <QPushButton>, class VS #include |
dsp |
9.2.2011, 0:14
Сообщение
#1
|
Студент Группа: Участник Сообщений: 51 Регистрация: 12.10.2010 Пользователь №: 2109 Спасибо сказали: 4 раз(а) Репутация: 0 |
Подскажи пожалуйста.
В разных примерах программ на Qt классы виджетов не добавляются через инклуд т.е. ,а пишутся так:
и т.д. с чем это связано? и что использовать? |
|
|
Rocky |
10.2.2011, 11:28
Сообщение
#2
|
Старейший участник Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: 7 |
Цитата(Litkevich Yuriy) Если же ты используешь класс для наследования, или для создания переменной на стеке (обычной) или используешь члены некого класса, то придётся использовать инклюд. ...но при суровой необходимости и это можно обойти Если класс используется для наследования (и далее по тексту), хидер включать необходимо. И легальными средствами имхо это не обойти. Компилятор должен обладать информацией о том, что это за класс. Может я жестко туплю конечно, либо придираюсь... А в чем приведенный код Алексей1153, kwisp, позволяет обойти то, о чем говорит Litkevich Yuriy? То что вы приводите, называется паттерн проектирования пимпл - ака идиома скрытой реализации. Мне кажется это не есть обход в том смысле в котором имеется ввиду. Ведь можно не создавать объект на стеке в капсуле класса, а использовать указатель на него. Наследование можно опять-таки заменить через указатель (практически всегда). И тогда тоже не нужно будет подключать хидер с капсулой класса в своем хидере. Вопрос ведь какой, как сделать так, чтобы при наследовании или создании объекта класса на стеке не нужно было включать хидер класса. Держу пари что как-то можно. Но схоу не могу сообразить. Вероятно, тут будет что-то из жесткого хака (типа define private public)... |
|
|
Текстовая версия | Сейчас: 28.4.2024, 4:16 |