![]() |
|
|
![]()
|
|
| Purple_Light |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 19.4.2007 Репутация: нет Всего: нет |
Посмотрел давеча исходники QWizard класса и заметил там интересный макрос Q_D, который часто используется. Судя по всему этот макрос служит для получения указателя на экземпляр этого же класса. Но как-то очень интересно через static_cast.
Зачем вообще нужен этот макрос и подобные ему? |
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Макрос Q_D() - вызов inline функции d_func(), которая возвращает указатель d_ptr на экземпляр класса QObjectData.
Вообще это внутреннее устройство qt, местами неприглядное. Думаю даже не стоит и пытаться понять макросы в ядре, их там большое количество. По большей части сделаны для того, чтобы при разной реалзиации методов класса на других платформах, интерфейс класса оставался один для всех. Есть смысл изучать те макросы, что в документации. |
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |