Russian Qt Forum
Апреля 20, 2025, 06:43
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
Как работает интерпретатор когда встречает emit ?
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Как работает интерпретатор когда встречает emit ? (Прочитано 9919 раз)
neosapient
Гость
Как работает интерпретатор когда встречает emit ?
«
:
Октября 29, 2008, 15:40 »
Добрый день.
Не могу понять, как работает интерпретатор когда встречает emit. Где то должен быть #define ? Или модуль moc вообще всё подменяет ?
Другими словами: можно ли самому организовать "оповещение", как это делается командой emit ?
Записан
ритт
Гость
Re: Как работает интерпретатор когда встречает emit ?
«
Ответ #1 :
Октября 29, 2008, 16:01 »
invokeMethod
Записан
Rcus
Гость
Re: Как работает интерпретатор когда встречает emit ?
«
Ответ #2 :
Октября 29, 2008, 16:30 »
emit(Q_EMIT) это просто пустой макрос чтобы отличать вызовы методов от сигналов, вся магия заключена в moc_*.cpp, там находится реализация сигналов и таблица метаинформации для класса, moc генерит подобные вещи для всех встреченных классов с макросом Q_OBJECT
Записан
SASA
Гость
Re: Как работает интерпретатор когда встречает emit ?
«
Ответ #3 :
Октября 29, 2008, 17:13 »
Цитата: Rcus от Октября 29, 2008, 16:30
emit(Q_EMIT) это просто пустой макрос чтобы отличать вызовы методов от сигналов.
Всегда мучили вопросы: "А заканчиваются ли на этом функции emit? А может в следующей версии Qt без emit и работать перестанет?"
Записан
Rcus
Гость
Re: Как работает интерпретатор когда встречает emit ?
«
Ответ #4 :
Октября 29, 2008, 17:32 »
Цитата: SASA от Октября 29, 2008, 17:13
Всегда мучили вопросы: "А заканчиваются ли на этом функции emit? А может в следующей версии Qt без emit и работать перестанет?"
У Qt лучшая документация, если там чего-то нет значит это не входит в контракт интерфейса и является деталью реализации. В Old New Thing подробно рассказывается о контракте интерфейса, если надо почитаете
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: Как работает интерпретатор когда встречает emit ?
«
Ответ #5 :
Октября 29, 2008, 17:51 »
ихо, emit служит для наглядности да и только
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
SASA
Гость
Re: Как работает интерпретатор когда встречает emit ?
«
Ответ #6 :
Ноября 01, 2008, 15:38 »
Цитата: Rcus от Октября 29, 2008, 17:32
У Qt лучшая документация, если там чего-то нет значит это не входит в контракт интерфейса и является деталью реализации. В Old New Thing подробно рассказывается о контракте интерфейса, если надо почитаете
А что такое контракт интерфейса, и где читать Old New Thing?
Заранее спасибо.
Записан
Rcus
Гость
Re: Как работает интерпретатор когда встречает emit ?
«
Ответ #7 :
Ноября 01, 2008, 21:08 »
http://en.wikipedia.org/wiki/Contract_programming
А The Old New Thing это блог Raymond Chen, человека знающего почему работает Windows, вот интересный пример:
http://blogs.msdn.com/oldnewthing/archive/2008/09/25/8965129.aspx
(title:Even if a function doesn't do anything, you still have to call it if the documentation says so, because it might do something tomorrow)
«
Последнее редактирование: Ноября 01, 2008, 22:19 от Rcus
»
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...