Метаобъектный компилятор

Мета-объектная система — часть ядра Qt фреймворка для поддержки Qt расширений в С++ таких, как сигналы и слоты для коммуникации между объектами в режиме реального времени и динамических свойств системы.

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

Использование мета-объектных систем прошло через некоторую критику. В документации Qt было дано несколько вещей в пользу мета-объектных систем, включая плюсы генерации кода, динамичности графических интерфейсов, автоматической связи со скриптовыми языками, не добавляя ограничений и так же хорошая, производительная разработка механизма сигналов и слотов в moc.

Ссылки

править