Форум вопросов и ответов

Форум вопросов и ответов (https://www.otvetnemail.ru/)
-   Новый архив 3 (https://www.otvetnemail.ru/novyj-arhiv-3-813/)
-   -   Что есть d_func(), d, q и зачем оно нужно и как с этим быть?! (https://www.otvetnemail.ru/novyj-arhiv-3-813/chto-est-d_func-d-q-i-zachem-ono-nuzhno-i-kak-s-etim-byt-261385/)

Guest 28.09.2011 20:24

Что есть d_func(), d, q и зачем оно нужно и как с этим быть?!
 
Доброго дня!Собственно сабж по теме..Я тут принялся исходники QAbstractSocket изучать для того, чтобы на его основе написать свой класс для работы с последовательным устройством и я запнулся на преобразованиях типа d_func() , d, q и т.п... В принципе я понял суть d и q (поверхностно), а вот с d_func() ума не приложу как разбираться... т.е я уже запутался...Меня интересует вопрос, почему тролли в классе QAbstractSocketEngine во многих функциях (см. qabstractsocketengine.cpp) используют так:Код:...QAbstractSocket::SocketState QAbstractSocketEngine::state() const{ return d_func()->socketState;}void QAbstractSocketEngine::setState(QAbstrac tSocket::SocketState state){ d_func()->socketState = state;}...Вопрос: почему они не делают через d !!!??? например типа : Код:...QAbstractSocket::SocketState QAbstractSocketEngine::state() const{ Q_D(const QAbstractSocketEngine); return d->socketState;}void QAbstractSocketEngine::setState(QAbstrac tSocket::SocketState state){ Q_D(const QAbstractSocketEngine); d->socketState = state;}...И вообще: когда нужно применять d_func() а когда d ? И т.п. ?


Часовой пояс GMT, время: 14:21.


© www.otvetnemail.ru - Форум вопросов и ответов.