Jump to content

Метаобъектная система

Система метаобъектов — это часть ядра платформы Qt, предназначенная для поддержки расширений Qt для C++, таких как сигналы/слоты для межобъектной связи, информация о типах во время выполнения и система динамических свойств. [1]

Архитектура

[ редактировать ]

Система мета-объектов состоит из трех вещей: класса QObject , макроса Q_OBJECT и инструмента под названием moc ( компилятор мета-объектов ). QObject — это базовый класс для всех классов Qt, макрос Q_OBJECT используется для включения функций метаобъектов в классах и, наконец, moc — это препроцессор , который изменяет экземпляры макроса Q_OBJECT на C++ исходный код , чтобы включить механизм системы метаобъектов в классе, в котором он находится. использовал. [2]

Использование системы метаобъектов вызвало некоторую критику. В документации Qt было указано несколько причин использования системы метаобъектов, включая преимущества генерации кода , динамизм графических интерфейсов , автоматическую привязку к языкам сценариев, отсутствие дополнительных ограничений, а также разумную производительность при реализации сигналов/слотов с помощью moc. [3] Предпринимаются некоторые попытки сделать Qt ненужным в препроцессоре. Эти усилия включают повторную реализацию Qt moc с использованием libclang. [4]

  1. ^ «Метаобъектная система — QtCore 5.1» . Проект Qt. 04 июля 2013 г. Проверено 4 июля 2013 г.
  2. ^ «Использование метаобъектного компилятора (moc)» . Проект Qt. 04 июля 2013 г. Проверено 4 июля 2013 г.
  3. ^ «Почему Qt использует Moc для сигналов и слотов?» . Проект Qt. 04 июля 2013 г. Проверено 4 июля 2013 г.
  4. ^ «Повторная реализация Qt moc с использованием libclang» . Оливье Гоффарт. 04 июля 2013 г. Проверено 4 июля 2013 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: a669d8b5ddb09db6d22f248b9a01fadf__1471594980
URL1:https://arc.ask3.ru/arc/aa/a6/df/a669d8b5ddb09db6d22f248b9a01fadf.html
Заголовок, (Title) документа по адресу, URL1:
Meta-object System - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)