powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / connect(): слоты и сигналы
130 сообщений из 130, показаны все 6 страниц
connect(): слоты и сигналы
    #39997725
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На примере Qt, но его тут знать не обязательно. Вот сигнатура, упрощённо:

Код: plaintext
1.
void QObject::connect(const QObject *sender, const char *signal, const char *method) const;


Не обращайте внимание, что сигналы и слоты типа "const char *" это устаревшее, но не суть.

Мы наследуемся от QObject, вызываем этот метод. Далее объект "sender" генерирует сигнал "signal" и для "this" вызывается "method".

Обратите внимание, что в вызов connect() не передаётся this. Откуда ж он его знает? :) Я думаю, что там где-то кодогенерация с виртуальными функциями. Ну или макрос Q_OBJECT определяет виртуальную функцию, которая возвращает this.

Вроде по другому задачу не решить? Я так просто порассуждать.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39997730
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
Обратите внимание, что в вызов connect() не передаётся this. Откуда ж он его знает? :)

Как это не передается. Это же не статический метод, значит this у него есть.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39997733
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прочитай основы ОО в С++: каждый нестатический метод класса имеет скрытый параметр. И это
- тадам! - this.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39997745
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky
petrav
Обратите внимание, что в вызов connect() не передаётся this. Откуда ж он его знает? :)

Как это не передается. Это же не статический метод, значит this у него есть.

Да, только в connect() this будет указывать на QObject, а метод-слот нужно будет вызвать в наследнике. И наследников может быть несколько: QObject -> A -> B. Множественное наследование тоже не запрещено.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39997748
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav, а исходники Qt почитать и, заодно, посмотреть что именно moc генерит что мешает? Пройтись дебаггером, в конце концов? )) там муторно конечно, но разобраться можно
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39997749
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav,

Метод который вызывается виртуальный. Дальше все автоматически происходит.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39997752
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
Anatoly Moskovsky
пропущено...

Как это не передается. Это же не статический метод, значит this у него есть.

Да, только в connect() this будет указывать на QObject
С чего это??? this показывает на конкретный объект а не на класс. А уж сколько там уровней наследования никакой роли не играет.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39997753
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky
petrav,

Метод который вызывается виртуальный. Дальше все автоматически происходит.

Метод-слот, который вызывается, не виртуальный. И в QObject его вообще нет ни в каком виде.

На то он и слот...
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39997761
Фотография OoCc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav,

морочишь людям головы.
Код: plaintext
1.
2.
template <typename PointerToMemberFunction, typename Functor>
QMetaObject::Connection QObject::connect(const QObject *sender, PointerToMemberFunction signal, Functor functor)

если в функции три параметра то третий это функтор и туда будут приходить сигналы. но никак не в объект в котором ты вызываешь connect
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39997763
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OoCc
petrav,

морочишь людям головы.
Код: plaintext
1.
2.
template <typename PointerToMemberFunction, typename Functor>
QMetaObject::Connection QObject::connect(const QObject *sender, PointerToMemberFunction signal, Functor functor)

если в функции три параметра то третий это функтор и туда будут приходить сигналы. но никак не в объект в котором ты вызываешь connect

Это новшество Qt 5. Если вы посмотрите на сигнатуру в первом посте, то поймёте, что вопрос был про функцию connect() из Qt 4.

PS: Да, я не пользуюсь этой устаревшей функцией, всё только compile time, без char * хранящий инфу о слоте.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39997768
Фотография OoCc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
OoCc
petrav,

морочишь людям головы.
Код: plaintext
1.
2.
template <typename PointerToMemberFunction, typename Functor>
QMetaObject::Connection QObject::connect(const QObject *sender, PointerToMemberFunction signal, Functor functor)

если в функции три параметра то третий это функтор и туда будут приходить сигналы. но никак не в объект в котором ты вызываешь connect

Это новшество Qt 5. Если вы посмотрите на сигнатуру в первом посте, то поймёте, что вопрос был про функцию connect() из Qt 4.

PS: Да, я не пользуюсь этой устаревшей функцией, всё только compile time, без char * хранящий инфу о слоте.

В таком случае Qt генерирует что то. Метод же обьявляется как слот.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39997988
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, а какие у нас вообще есть честные C++ способы передать this наследника в
базовый класс (кроме виртуальных функций)?

- Через "странно рекурсивное наследование" передать в базовый класс тип (класс)
наследника. И в базовом классе преобразовать this базового класса.

- Паттерн Command. Самая простая реализация std::function + std::bind.

- Передать в базовый класс функтор (лямбду) в котором упакованы this (ну и метод).

Перечисленное во многом пересекается, в терминологии могу ошибаться.

Что-то забыл?
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998034
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav,
Опять же нужен практический код и вопрос.
В общем случае базовый класс не должен знать о наследнике.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998051
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
Кстати, а какие у нас вообще есть честные C++ способы передать this наследника в
базовый класс (кроме виртуальных функций)?...


ОО метода это от жизни...
И посему интересн пример из жизни, где яйца должны знать форму лотка в котором они лежат. Это типо уши у них что ли появились или ручки для ощупывания?

выходит как то так...
(круглый)
ЗЫ
Для наследования - можно сказать по другому:
- сущность зверь знает кем она может быть в будущем? Типо через год буду зайцем... ????
ЗЫ ЗЫ
По поводу слотов в QT - там были глюки лет пять назад. Надо очень аккуратно коннект и дисконнект делать.
- сохранять форму вызова
- делать дисконнект в обратной последовательности
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998132
bk0010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolobok0
По поводу слотов в QT - там были глюки лет пять назад. Надо очень аккуратно коннект и дисконнект делать.
Не подскажите, где бы посмотреть про это (мне может оказаться актуальным)?
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998137
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolobok0
petrav
Кстати, а какие у нас вообще есть честные C++ способы передать this наследника в
базовый класс (кроме виртуальных функций)?...


ОО метода это от жизни...
И посему интересн пример из жизни, где яйца должны знать форму лотка в котором они лежат. Это типо уши у них что ли появились или ручки для ощупывания?

Иначе GUI в ООП стиле не построишь.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998156
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
.Иначе GUI в ООП стиле не построишь.




вот это поворот...
ну... тут надобно пример траблов, которые вызвали трудности...а так - не о чём...
накидайте пример. может я что то новое для себя узнаю...

(круглый)
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998176
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
Иначе GUI в ООП стиле не построишь.
бездоказательно дорогой).
ООП это наследование, полиморфизм и инкапсуляция. Где трудности?
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998177
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bk0010,
Вангую что утечка памяти. Но могу ошибаться.
Ну а прогеры старой закалки просто аккуратно подписываются и аккуратно отписываются на события.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998215
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolobok0
petrav
.Иначе GUI в ООП стиле не построишь.




вот это поворот...
ну... тут надобно пример траблов, которые вызвали трудности...а так - не о чём...
накидайте пример. может я что то новое для себя узнаю...

Я думаю, что как-то так 22195969 и работает connect() из Qt 5.
Макрос "slots" уже не нужен.

Представьте, что мы разработчики Qt. Нам нужно без кодогенерации вызвать из
базовой библиотеки метод клиентского класса. При этом этот метод не виртуальный,
и не статический, имеет заведомо неизвестное название.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998238
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav, а сколько потоков в твоём приложении?
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998244
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
petrav, а сколько потоков в твоём приложении?

А к чему вопрос?
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998246
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я могу ошибаться но в моём понимании сигнально-слотная система полезна когда у тебя несколько
потоков коммуницируют друг с другом. Как акторы. Или как подписчики и поставщики в системах MQ.

В остальных случаях. Зачем? Ну вызови метод и все.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998248
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
В остальных случаях. Зачем? Ну вызови метод и все.

Представим у нас есть два библиотечных класса BaseForm и PushButton.

Как вы предлагаете из них вызывать метод MyForm::onMyButtonPressed() ?

MyForm -- клиентский класс, наследник от BaseForm.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998249
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так глубоко не вижу проблему. А в чем проблема вызвать метод?
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998253
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Я так глубоко не вижу проблему. А в чем проблема вызвать метод?

:) У нас есть файл PushButton.cpp. Но мы не можем в нём подключить файл MyForm.h и
просто вызвать метод MyForm::onMyButtonPressed(). А вызвать нужно.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998256
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Позднее связывание?
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998262
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Позднее связывание?

Что именно вы имеете в виду?
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998267
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
mayton
Позднее связывание?

Что именно вы имеете в виду?

Это когда в фазе компилляции твой код еще не знает какой из производых классов будет использован.
Такая инфа появляется в рантайме. Обычное дело.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998269
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
petrav
пропущено...

Что именно вы имеете в виду?

Это когда в фазе компилляции твой код еще не знает какой из производых классов будет использован.
Такая инфа появляется в рантайме. Обычное дело.

Вы спрашивали в чём проблема. Я вам пояснил или нет?
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998271
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
mayton
пропущено...

Это когда в фазе компилляции твой код еще не знает какой из производых классов будет использован.
Такая инфа появляется в рантайме. Обычное дело.

Вы спрашивали в чём проблема. Я вам пояснил или нет?

Нет. Не пояснил.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998273
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petravПредставьте, что мы разработчики Qt. Нам нужно без кодогенерации вызвать из
базовой библиотеки метод клиентского класса. При этом этот метод не виртуальный,
и не статический, имеет заведомо неизвестное название.

То есть "представьте, что мы криворукие разработчики, спроектировавшие кривую библиотеку"
и теперь нам надо героически преодолеть последствия собственной криворукости.

petravПредставим у нас есть два библиотечных класса BaseForm и PushButton.

Как вы предлагаете из них вызывать метод MyForm::onMyButtonPressed() ?
Учиться у классиков. Борланды проделали это дважды: в Turbo Vision через наследование и в
VCL через указатели на метод класса. Да, в последнем случае им пришлось расширить С++ в
котором тогда не было функторов.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998276
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(раскачиваясь в кресле)

Мне почему-то вспоминаются некие UI-ные библиотечки. У них была концепция шины сообщений.
И подписчиков. Для модели MVP. И вобщем когда модель меняется - она посылает сообщение в шину
типа "изменилась карточка абонента" и все UI ные компоненты которые в состояни среагировать на это
- обновляют свой вид. Это было удобно.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998277
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
petrav
пропущено...

Вы спрашивали в чём проблема. Я вам пояснил или нет?

Нет. Не пояснил.

Тогда предлагаю вам написать файл PushButton.cpp и вызвать оттуда MyForm::onMyButtonPressed().

Но это не виртуальный метод. И не статический.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998278
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
mayton
пропущено...

Нет. Не пояснил.

Тогда предлагаю вам написать файл PushButton.cpp и вызвать оттуда MyForm::onMyButtonPressed().

Но это не виртуальный метод. И не статический.

А почему нельзя виртуальный? Это обидно.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998279
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petravТогда предлагаю вам написать файл PushButton.cpp и вызвать оттуда MyForm::onMyButtonPressed().

Ну ёлы-палы, выйдите уже за пределы кутвари, откройте для себя VCL или хотя бы "ок гугль,
указатель на метод класса в С++".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998287
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

petravТогда предлагаю вам написать файл PushButton.cpp и вызвать оттуда MyForm::onMyButtonPressed().

Ну ёлы-палы, выйдите уже за пределы кутвари, откройте для себя VCL или хотя бы "ок гугль,
указатель на метод класса в С++".

Меня поражает ваша манера с понтом писать бессмысленные сообщения.

Я знаю про указатели на метод класса. И проблему этого топика могу решить тремя разными способами.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998296
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Джентльмены! Давайте снизим градус слов. Не надо нам всяких *тварей.

Мы ведь и так нормально общаемся.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998297
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petravЯ знаю про указатели на метод класса. И проблему этого топика могу решить тремя разными
способами.

То есть ты создал тему с проблемой для которой знаешь три решения. Чисто на поржать.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998298
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonМы ведь и так нормально общаемся.

Нет, аффтар над нами просто прикалывается.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998301
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не против программирования сигналов и слотов. Но мне интересен strong justification их использования.
Тоесть должна быть некая совокупность условий которая дает этому неоспоримое преимущество перед
другими методами.

И не хочется быть комсомольцами которые часто пишут "зачем просто когда можно сложно".
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998347
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
...Я думаю, что как-то так ...


Вы как-то меня не услышали совсем.


Я просил привести пример Ваших проблем построения "GUI в ООП стиле" озвучьте пожалуйста. Ну типо Вы не можете сделать то и то то...


а Вы, как в том анекдоте с китайцами и паролем от Вашингтона - сигналы да сигналы...
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998366
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
mayton
Я так глубоко не вижу проблему. А в чем проблема вызвать метод?

:) У нас есть файл PushButton.cpp. Но мы не можем в нём подключить файл MyForm.h и
просто вызвать метод MyForm::onMyButtonPressed(). А вызвать нужно.
у вас более общая проблема - Методы взаимодействия классов между собой.
Это не про ООП.
Вы ошиблись.
По прежнему ждем код и пояснения проблемы.
Тут половина не поняла. Вторая половина решила что вы прикалывыетесь.
Я вангую что вы разрезали ГУИ на две части "по живому".
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998367
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А мне кажется что тема - еще одно мета-программирование на С++.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998369
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
А мне кажется что тема - еще одно мета-программирование на С++.
ну типа, кнопка должна вызвать, но не знает ни имени, ни рода, ни направления ни языка программирования)).
Полиморфизм в наследовании отсутствует.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998373
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сама по себе идея мета-программизма привлекательна. Под .net создавали экспериментальный
язык Nemerle где можно создавать свои синтаксические конструкции. Но мне кажется что для
"читающего код" это должно быть со стороны как "страшное колдунство". В вырожденном
случае ты пишешь в исходнике make_me_feel() и на выходе вдруг появляется готовая
программа где все работает но как она чьорт возьми появилась непонятно и главное
непонятно как ее фиксить развивать и поддерживаеть.

Кто там в топике писал про "хрупкое поделие которое работает только у автора...."
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998378
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
А мне кажется что тема - еще одно мета-программирование на С++.

Да, вы угадали. Я пишу надстройку над connect() из Qt 5 (строго типизированный вариант).

И просто решил пообсуждать как бы был реализован сам connect() из Qt. Для пятой версии привёл
три варианта решения. Для четвёртой очевидно там кодогенератор решает проблемы языка.

И просто спросил нет ли других способов? И всё, у меня тут проблем нет. Шаблонам планово
накручивается пятый этаж.

PS: Для этой проблемы Борланд действительно расширял С++. А Майкрософт в MFC создал жутко
дибильную фигню под названием message map.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998380
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ну ОК. Тогда у меня вопросов нет.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998387
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav,
>Майкрософт в MFC создал жутко
дибильную фигню
= ну вы вспомнили 2010 год))
Через 3 года и ваш код назовут дебильным.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998389
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что щас MS предлагает в части формо-шлёпства? Если исключить дотнет.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998395
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
А что щас MS предлагает в части формо-шлёпства? Если исключить дотнет.

Уже лет 10 как
.Net.
Срочно делает кроссплатформ
.Net Core
Но там пока нет ничего для формошлепства.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998396
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mayton
А что щас MS предлагает в части формо-шлёпства? Если исключить дотнет.

Уже лет 10 как
.Net.
Срочно делает кроссплатформ
.Net Core
Но там пока нет ничего для формошлепства.

Переводя на наш язык - ничего.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998398
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Есть еще WPF, типа
<StackPanel Orientation="Vertical">
<TextBox />
<TextBlock />
</StackPanel>
Но мне лично не нравится декларативно)
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998400
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
> Переводя на наш язык - ничего.
Это как сказать
- каждые 5 лет новая парадигма
- формошлепство есть.
Больше критерий ты не спрашивал)
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998404
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вспомнил. Ксамл. Мы на нем собирались биллинг делать. Давно еще. Я тогда в гос-конторе работал.



Будь я дотнетчиком я-бы не выёживался и спокойно был плыл в фарватере их разработок. Язык есть.
Поддержка есть. Сообщество наверняка есть. Афтор бери и кодь свои формочки!

Сдался тебе этот кю-ти со слотами прости господи.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998409
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Компания на С++ пишет.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998410
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Он сделал акцент не на формошлепстве а на карте или системе сообщений.
Строит свою систему сообщений и событий.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998416
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Ну и, спрашивать он стесняется, а по факту пытается Qt GUI отделить полностью от своих сишных прогеров.
Типо морда отдельно.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998417
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Прогер СЕМЬ делает почти тоже самое что и он.
Имхо
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998418
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
mayton,

Компания на С++ пишет.

Я за последние лет 10 видел только одно убедительное обоснование писать UI на С++.
Это если геймдевом заниматься. Да и то там в последнее время - там тоже идет пересмотр
стека технлогий.

Ну да ладно. Раз фирма веников не вяжет - то дай то бох.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998420
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mayton,
Он сделал акцент не на формошлепстве а на карте или системе сообщений.
Строит свою систему сообщений и событий.

Ну это дело вообще не этом пишут. D-Bus по идее должен быть в основе.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998423
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
petrav
mayton,

Компания на С++ пишет.

Я за последние лет 10 видел только одно убедительное обоснование писать UI на С++.
Это если геймдевом заниматься. Да и то там в последнее время - там тоже идет пересмотр
стека технлогий.

Ну да ладно. Раз фирма веников не вяжет - то дай то бох.

А на чём GUI пишут по Линукс?
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998426
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ХЗ.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998433
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petravДля этой проблемы Борланд действительно расширял С++.

А потом - хопа! - это вошло в его стандарт в виде std::function. Но престарелые библиотеки
всё ещё пускают поезда под откос.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998437
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У нас где-то был форум. Где мы брали наугад штук 10 UI приложений и смотрели под капотом на чем они реализованы.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998447
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

petravДля этой проблемы Борланд действительно расширял С++.

А потом - хопа! - это вошло в его стандарт в виде std::function. Но престарелые библиотеки
всё ещё пускают поезда под откос.

Что-то я не припоминаю, что бы из Билдера куда-то что-то вошло, особенно в виде std::function.
Вот такой код на Борланде и сейчас не соответствует идее С++:

Код: plaintext
1.
myButton.OnClick = MyClassMethod;


А "престарелая" Qt поддерживает кучу фишек из С++ 17. В том числе connect() поддерживает
лямбды.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998448
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
PetroNotC Sharp
mayton,
Он сделал акцент не на формошлепстве а на карте или системе сообщений.
Строит свою систему сообщений и событий.

Ну это дело вообще не этом пишут. D-Bus по идее должен быть в основе.

Мне кажется сама идея отделить кнопку от формы наследника порочной.
А не карта сообщений)))
Это же ТС вспомнил про карту сообщений от MS.
"Не отделять кнопку и не нужна карта" (с)
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998455
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petravВот такой код на Борланде и сейчас не соответствует идее С++:

Да ну? А если объявить OnClick как std::function(void(TObject*)> и присваивать через
std::bind?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998470
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

petravВот такой код на Борланде и сейчас не соответствует идее С++:

Да ну? А если объявить OnClick как std::function(void(TObject*)> и присваивать через
std::bind?..

Единственное что тут общего — это идея упаковать в вызываемую сущность this и адрес метода.
Но разве это изобретение Борланда? Это можно было делать и без него:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
struct BaseCommand
{
    virtual ~BaseCommand();
    virtual void call() = 0;
};

template <class T>
struct Command: public BaseCommand
{
    Command(T*, void (T::*)());
    virtual call(); // И вызывай на здоровье хоть из Караганды по указателю на BaseCommand.
};


А синтаксически идея Борланда совершенно не похожа на C++.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998475
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petravА синтаксически идея Борланда совершенно не похожа на C++.

"Чо?" (с)

Какая именно часть синтаксиса не похожа на С++:

а) Точка как оператор доступа к мемберам;
б) Знак равенства как оператор присваивания;
в) Имя функции без скобок как её адрес;
г) Неявный this-> перед именем метода.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998478
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

petravА синтаксически идея Борланда совершенно не похожа на C++.

"Чо?" (с)

Какая именно часть синтаксиса не похожа на С++:

а) Точка как оператор доступа к мемберам;
б) Знак равенства как оператор присваивания;
в) Имя функции без скобок как её адрес;
г) Неявный this-> перед именем метода.

Давайте напишем на std::function и сравним. Там всё будет непохоже.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998486
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я фигею.
Есть событийная модель от Qt
Есть от std... Function
Есть от boost... signals
И все непохожее и имеет отличия))
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998488
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petravДавайте напишем на std::function и сравним. Там всё будет непохоже.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
typedef std::function<void(TObject*>)> TNotifyEvent;

class PushButton
{
public:
   TNotifyEvent OnClick;
};

MyButton->OnClick = std::bind(MyClassMethod, this);


Что, разница действительно настолько велика? Ну ничего, к какому-нибудь С++22 комитет таки
сделает самоочевидный шаг от "pointer to member" к "pointer to member of object".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998490
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хватит уже улучшать. И так по 5 лет учатся на синьоров и еще 10 лет работают и все равно ошибки делают.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998491
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Ну, если в Qt или шарпе, событие в потоке отправил и голова не болит.
Всё будет разрулено.
То в плюсах еще попотеть надо).
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998492
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonИ так по 5 лет учатся на синьоров и еще 10 лет работают и все равно ошибки делают.

Вот поэтому я и не заморачиваюсь на "макросы v2 aka templates" и пишу на "Си с объектами",
добивая недостающее дизайном.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998496
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

petravДавайте напишем на std::function и сравним. Там всё будет непохоже.

Что, разница действительно настолько велика? Ну ничего, к какому-нибудь С++22 комитет таки
сделает самоочевидный шаг от "pointer to member" к "pointer to member of object".

Лень компилировать но быстрее уж так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
typedef std::function<void()> TNotifyEvent;

class PushButton
{
public:
   TNotifyEvent OnClick;
};

MyButton.OnClick = std::bind(&MyClass::MyMethod, this);


И да, это совершенно не похоже на код Борланда. Это больше похоже на мой класс выше: Command.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998498
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mayton,
Ну, если в Qt или шарпе, событие в потоке отправил и голова не болит.
Всё будет разрулено.
То в плюсах еще попотеть надо).

Получается что язык не приспособлен для некоторых вещей. Или они делаются
через страшные танталовы муки. Кстати забавный факт. Каждый хочет написать
свою нетленку в виде фреймворка который аки золотая пуля бъет в цель и решает
все текущие проблемы. Но что-то я не видел чтоб эта нетленка в гитхабе выходила
хотя-бы на уровень выше 100 форков или столько же использований.

Qt - отдельная тема. Он создавался как коммерческий продукт. Стало-быть
была железная мотивация к тому чтобы сорцы хотя-бы тестами покрыть.
А это немаловажно.

Остальная нетленка - остается уделом гаражных поделий.

Мне кажется основная беда - мышление. Оно языково-ориентировано.
Подобно тому как "плотник думает топором", программист думает на С++.

И здесь возникают самые сложные ограничители. Я-бы сказал на уровне психологии
чем технологии.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998505
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПолучается что язык не приспособлен для некоторых вещей. Или они делаются
через страшные танталовы муки.

При чём тут язык-то? Гордость от того, что кто-то внезапно изобрёл очередь сообщений, а
потом спрятал и её и цикл её обработки под капот фреймворка, конечно, никто не будет
осуждать, но и хлопать в ладоши на это "мама, я покакал" тоже как-то не тянет.

И, внезапно, будет ли это называться Qt, VCL или WinForms - тоже совершенно без разницы.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998511
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

Мне кажется основная беда - мышление. Оно языково-ориентировано.
Подобно тому как "плотник думает топором", программист думает на С++.

И здесь возникают самые сложные ограничители. Я-бы сказал на уровне психологии
чем технологии.

Интересно было бы увидеть какое-то приземлённое сравнение-пример.

Вот такая-то проблема. На Яве программист решает так-то, мыслит в ООП стиле.
А на С++ программист начинает ипаться с языком и не может выпустить релиз.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998534
Dimitry Sibiryakov
Гордость от того, что кто-то внезапно изобрёл очередь сообщений, а
потом спрятал и её и цикл её обработки под капот фреймворка, конечно, никто не будет осуждать, но и хлопать в ладоши на это "мама, я покакал" тоже как-то не тянет.

в C++ много чего изобретать даже не надо, уже всё есть
petrav
Вот такая-то проблема. На Яве программист решает так-то, мыслит в ООП стиле.
А на С++ программист начинает ипаться с языком и не может выпустить релиз.

можно ещё вспомнить PHP, Haskell, Python :)
"мыслить в ООП стиле" - стоит весьма существенных байтов памяти и тактов процессора
каждому своё
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998540
bk0010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Будь я дотнетчиком я-бы не выёживался и спокойно был плыл в фарватере их разработок. Язык есть. Поддержка есть. Сообщество наверняка есть. Афтор бери и кодь свои формочки!
Silverlight приплыл, классический ASP приплыл, даже ADO и тот приплыл. Следуя линии развития Microsoft, даже удав сломает себе шею.
mayton
Я за последние лет 10 видел только одно убедительное обоснование писать UI на С++. Это если геймдевом заниматься.
Есть еще обоснование: надо писать программу с пользовательским интерфейсом под Linux, но Java и Lazarus использовать не разрешают. И тут остаются два варианта: или UI на С++ или веб-морда (но это совсем грустно).
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998587
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonМне кажется основная беда - мышление. Оно языково-ориентировано.
Подобно тому как "плотник думает топором", программист думает на С++.
Есть такое дело.
С одной стороны, есть фраза что опытному прогеру пофиг на чем писать.
С другой стороны, паттерны решения Button.onClick = binding везде разные)
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998659
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
mayton

Мне кажется основная беда - мышление. Оно языково-ориентировано.
Подобно тому как "плотник думает топором", программист думает на С++.

И здесь возникают самые сложные ограничители. Я-бы сказал на уровне психологии
чем технологии.

Интересно было бы увидеть какое-то приземлённое сравнение-пример.

Вот такая-то проблема. На Яве программист решает так-то, мыслит в ООП стиле.
А на С++ программист начинает ипаться с языком и не может выпустить релиз.

Мне просто бесконечно жаль сишников которые тратят уйму времени на псевдо-архитектурные
вопросы. Как-то кодовые страницы и управление памятью. А когда доходит дело до шаблонов
проектирования - у сишника висит чугунная гиря на ноге. Это менеджмент памятью. Сишник
постоянно думает о том как он уберет память после того как реализация шаблона будет не нужна.
Это - замедляет процесс архитектурирования. Сишник как-бы боится использовать шаблон.
Он боится утратить контроль. Но ребята как-же реализовывать пулы, синглтоны и внедрение
зависимостей?

Некоторые утилитарные вещи, такие как файловый итератор по дереву каталогов - в других
языках очень легко (за считанные минуты собираются в готовые решения), в С++ - вызывают
мучения интеллегенстского толка. Кажется что девелопер уже из принципа хочет это сделать
так хотя на перформанс всего приложения в целом оно не влияет аж никак.

Посмотрите в смежном топике мы сломали сколько копий и исписали столько бумаги просто
чтобы ОБОЙТИ гребаный каталог файлов! И мы еще пол-дня думали какого размера буфер
выделить. Это в 21 веке. В веке ИИ у нас осталась проблема времен первых ЭВМ.
Что не могли авто-детектировать размер по потребности? Если не могли - то почему?

Почему только я спрашиваю подобные вопросы. У вас у самих таких вопросов не возникает?
Нет я не ругаю С++. Я спрашиваю почему сапожник без сапог?
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998687
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
....Я спрашиваю почему сапожник без сапог?


имхо - это не сапожник без сапог, а попытка зная язык - решать задачи. хотя изначально первична ОО технология, а уж каким языком изображать - дело 25.

и это кстати не только си плас плас. этим грешат практически все разрабы косящие под ОО рельсы. Куда не глянешь - везде азм в профиль, и вот такие вопросы с форума = как яйцо узнает форму лотка в котором оно существует...



(круглый)
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998697
mayton
Нет я не ругаю С++. Я спрашиваю почему сапожник без сапог?

в смежном топике вы обход делали на C...
в 21м веке на C++ нет либ для обхода каталога файлов?
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998705
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сапожник без сапог. Я говорю не о либах а о практике применения либ. В форуме я ее (практику не увидел).
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998723
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЯ говорю не о либах а о практике применения либ.

Ну давай посмотрим... В RT11 не было библиотеки чтения каталогов. В Linux она есть и ею
активно пользуются. По-моему практика налицо.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39998760
mayton
Сапожник без сапог. Я говорю не о либах а о практике применения либ. В форуме я ее (практику не увидел).

а мне показалось, там человек учился программировать... писал с нуля своё
в целом спад кол-ва mystring.h на лицо
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39999783
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
А мне кажется что тема - еще одно мета-программирование на С++.

Интересно было бы узнать что такое «мета-программирование на С++»?

Что вы под этим понимаете?
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39999789
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
mayton
А мне кажется что тема - еще одно мета-программирование на С++.

Интересно было бы узнать что такое «мета-программирование на С++»?

Что вы под этим понимаете?

Ну это когда в каком-то языке X у тебя есть косвенный способ воздействия на результирующий код.
Такая себе трансформация кода ДО компилляции. Например в сях есть макро-процессор. И процессор
шаблонов которые решает какой вид функции и с какими типами ему собрать. В Java есть процессор
аннотаций. Тоже трансформирует исходник в другой код. Это кстати основная тема срачей в Java.
Именно во что превратит код та или иная аннотация в совокупности с 1 или более чем одним
процессингом этих аннотаций. В Lisp тоже есть своя тема макросов. Но до этого левла я еще не дошел.

Просто вы так долго программируете на сях что не замечаете этого разделения на слои. А ведь слой
макро-процессинга можно усилить. И создать еще более ... хитрый язык что-ли.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39999800
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonА ведь слой макро-процессинга можно усилить. И создать еще более ... хитрый язык что-ли.

Раз уж речь зашла, можно ли так извратиться с шаблонами, чтобы ими создавался наследник
заранее неизвестного класса-параметра со всеми методами, переопределёнными по
определённому шаблону? То есть, например:
Код: sql
1.
2.
3.
4.
5.
class Base
{
   void foo() = 0;
   int bar(const char*) = 0;
};


И темплейт (например Implement<Base>) на выходе автоматически имеет
Код: sql
1.
2.
3.
4.
5.
class ...: Base
{
   void foo() override {}
   int bar(const char*) override { return 0; }
};


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39999809
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

Просто вы так долго программируете на сях что не замечаете этого разделения на слои. А ведь слой
макро-процессинга можно усилить. И создать еще более ... хитрый язык что-ли.

Ну вот тут момент есть: как отличить программирование на шаблонах от шаблонного мета-программирования?
Если это одно и тоже, то это как-то не очень интересно и не круто выходит. :) В этом загвоздка!

Я слышал два прочтения понятия мета-программирования:

- Программирование не в термина данных, а в терминах данных о данных.
- Программа порождает другую программу (кодогенератором или C++ шаблонами).
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39999871
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav

- Программирование не в термина данных, а в терминах данных о данных.
- Программа порождает другую программу (кодогенератором или C++ шаблонами).

Я-бы различал мета-программирование и кодо-генерацию.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39999937
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

maytonА ведь слой макро-процессинга можно усилить. И создать еще более ... хитрый язык что-ли.

Раз уж речь зашла, можно ли так извратиться с шаблонами, чтобы ими создавался наследник
заранее неизвестного класса-параметра со всеми методами, переопределёнными по
определённому шаблону? То есть, например:
Код: sql
1.
2.
3.
4.
5.
class Base
{
   void foo() = 0;
   int bar(const char*) = 0;
};


И темплейт (например Implement<Base>) на выходе автоматически имеет
Код: sql
1.
2.
3.
4.
5.
class ...: Base
{
   void foo() override {}
   int bar(const char*) override { return 0; }
};



Не представляю зачем такое было бы нужно. А вам какую задачу нужно решить?
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39999944
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petravА вам какую задачу нужно решить?

Есть API на абстрактных классах. Требуется сделать обёртку к нему, каждый метод которого
вызывает соответствующий метод предка, проверяет код возврата и выбрасывает исключение при
необходимости.

Можно, конечно, это написать и ручками, но а) лень, б) придётся менять код в нескольких
местах при изменении базового API.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #39999956
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такая штука. AOP.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #40000080
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Под Java мы когда-то юзали Aspect-J, и похоже в сях есть ее брат-близнец https://www.aspectc.org/Documentation.php
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #40000116
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Есть такая штука. AOP.
проблема что эта штука чаще используется в веб чем в десктоп
А в плюсы не веб язык.
авторПри работе над кодом со сквозной функциональностью, возникают проблемы, связанные с ограничением модульности. Поскольку «поперечное» поведение реализуется разрозненно, разработчики находят такое поведение затруднительным в осмысливании, реализации и изменении. Код для ведения журналов, например, переплетается с кодом, отвечающим в основном за что-либо другое.
Вот эта проблема из за которой появился AOP не так часто встречается в десктопе.
Поэтому java и ушел в метапрограммирование, спринг и конфигурастов программистов.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #40000118
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

авторПримерами сквозной функциональности, как мы уже видели выше, могут служить:
логирование,
обработка транзакций,
обработка ошибок,
авторизация и проверка прав,
кэширование,
элементы контрактного программирования.
https://habr.com/ru/post/114649/
Вот эти проблемы в основном построения веб приложения.
Не пишут в java уже давно
ClassA a = new ClassA()
AOP кругом))) и 200 аннотаций над методом)))
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #40000456
legioner_2021
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
petrav
На примере Qt, но его тут знать не обязательно. Вот сигнатура, упрощённо:

Код: plaintext
1.
void QObject::connect(const QObject *sender, const char *signal, const char *method) const;


Не обращайте внимание, что сигналы и слоты типа "const char *" это устаревшее, но не суть.

Мы наследуемся от QObject, вызываем этот метод. Далее объект "sender" генерирует сигнал "signal" и для "this" вызывается "method".

Обратите внимание, что в вызов connect() не передаётся this. Откуда ж он его знает? :) Я думаю, что там где-то кодогенерация с виртуальными функциями. Ну или макрос Q_OBJECT определяет виртуальную функцию, которая возвращает this.

Вроде по другому задачу не решить? Я так просто порассуждать.


DBus ?
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #40000475
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mayton,

авторПримерами сквозной функциональности, как мы уже видели выше, могут служить:
логирование,
обработка транзакций,
обработка ошибок,
авторизация и проверка прав,
кэширование,
элементы контрактного программирования.

https://habr.com/ru/post/114649/
Вот эти проблемы в основном построения веб приложения.
Не пишут в java уже давно
ClassA a = new ClassA()
AOP кругом))) и 200 аннотаций над методом)))
AOP возник - задолго до аннотаций.

Кстати какая принципиальная разница между например #pragma OpenMP и Java annotation?
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #40000541
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
>AOP возник - задолго до аннотаций.
= мое имхо что он возник на проблемах _веб приложений_.
В десктопе проблем таких нет.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #40000561
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mayton,
>AOP возник - задолго до аннотаций.
= мое имхо что он возник на проблемах _веб приложений_.
В десктопе проблем таких нет.


Неверный месседж. Любое PHP-приложение - суть веб-приложение.
Ты наверное хотел сказать - business process. Enterprise... e.t.c.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #40000653
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

Будь я дотнетчиком я-бы не выёживался и спокойно был плыл в фарватере их разработок. Язык есть.
Поддержка есть. Сообщество наверняка есть. Афтор бери и кодь свои формочки!

Сдался тебе этот кю-ти со слотами прости господи.

Интересно было бы узнать, чем по вашему подключение делегатов в WinForms отличается от
подключения слотов в Кьют, прости господи?
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #40000668
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Языком разработки.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #40000671
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Языком разработки.

Я задал бессмысленный вопрос. И получил такой же бессмысленный ответ.
Раз семантической разницы нет, то на нет и суда нет.

Но мы тут на форуме С++, а не на форуме .NET, товарищ модератор.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #40000673
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорошо товарищ Петров. Но я иногда делаю сравнительный анализ. И привлекаю к сравнению языки и технологии
не для рекламы а для поиска истины.

Надеюсь ты не против поиска истины?
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #40000674
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Хорошо товарищ Петров. Но я иногда делаю сравнительный анализ. И привлекаю к сравнению языки и технологии
не для рекламы а для поиска истины.

Надеюсь ты не против поиска истины?

И в чём же тут содержалось (в контексте подключения обработчиков) ваше сравнение
языков и технологий? Давайте ближе к истине.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #40000675
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не хочу спорить. Ты прав. Развивай дальше сигналы и слоты.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #40000679
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Я не хочу спорить. Ты прав. Развивай дальше сигналы и слоты.

Просто было не очень понятно ваше акцентирование именно что на слотах и сигналах. Причём
акцентирование в отрицательном контексте. Что-то вас в этом смущает, хотя во всех остальных
языках и технологиях сделано так же.

Но, видимо, вы и сами не знаете что вам тут не нравится.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #40000723
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav,
Слоты и сигналы выглядят чужеродно для сишника.
Отсюда именно весь ваш топик.
Ну или задайте еще раз свой вопрос топика))
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #40001123
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Слоты и сигналы выглядят чужеродно для сишника.
с чего бы это? вызов метода класса по указателю - нет ничего более естественного, для сишника то
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #40001137
это для си-плюс-плюсника оно чужеродно
Код: plaintext
1.
2.
3.
A *a;
a->method_name(1, 2, 3);
method_name(a, 1, 2, 3);
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #40001154
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorych
PetroNotC Sharp
Слоты и сигналы выглядят чужеродно для сишника.
с чего бы это? вызов метода класса по указателю - нет ничего более естественного, для сишника то

А где еще есть:
- зарезервированное слово public slots :
- мета объектный компилятор для правки исхолников?
Никакому прогеру не понравится когда его исходники правят)))
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #40001159
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020,
Qt вроде _противопоставил_ "механизму указателей на метод" написав свой собственный механизм.
Имхо
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #40001359
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
А где еще есть:
- зарезервированное слово public slots :
- мета объектный компилятор для правки исхолников?
это чистый сахар, ты можешь написать всё, что делает moc, руками прямо у себя в классе, тогда и slots не потребуется и исходники править не придётся, а слоты - будут.
PetroNotC SharpНикакому прогеру не понравится когда его исходники правят)))moc не правит исходники, он генерит новые, не наговаривай на норвежских самописцев тут))
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #40001363
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Алексей Роза 2020,
Qt вроде _противопоставил_ "механизму указателей на метод" написав свой собственный механизм.
Имхо
да ну ничего он не _противопоставил_, просто скрыл рутину под капот moc-компилятора, и всё.
в бусте вон, на шаблонах собрали всё то же самое, но они позже Qt пришли, им было проще
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #40001367
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorych,
Я вроде простой вопрос задал.
- приведи пример пользовательского кода с зарезервированным новым словом в классе
public XXXXXX:
Если прогеры это широко применяют, то мы увидим.
Если нет, то это чужеродно))))
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #40001370
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorych,
авторmoc не правит исходники, он генерит новые, не наговаривай на норвежских самописцев тут))
Это тавталогия.
Он не правит исходники буквально и моим пером. Он правит мой код через генерацию нового кода. Неужели непонятно.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #40001373
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC SharpОн правит мой код через генерацию нового кода.

Так этим любой препроцессор занимается, вообще-то...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #40001378
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
egorych,
Я вроде простой вопрос задал.
- приведи пример пользовательского кода с зарезервированным новым словом в классе
такие примеры подойдут?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
class TdeliveriesF : public TdbgridF
{
__published:
	TPopupMenu *deliveriesPM;
	TMenuItem *findMI;
...
public:
	typedef void __fastcall ( __closure *OnComboChoiceEvent )( int );
...
protected:
	__property OnComboChoiceEvent OnComboChoice =
		{ read = _onComboChoice, write = _onComboChoice	};
...
};
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #40001381
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Он не правит исходники буквально и моим пером. Он правит мой код через генерацию нового кода
в отличие от встроенных в язык препроцессора и шаблонов, которые таки правят твой код непосредственно твоим пером, как справедливо заметил Dimitry Sibiryakov
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #40001387
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorych
PetroNotC Sharp
Алексей Роза 2020,
Qt вроде _противопоставил_ "механизму указателей на метод" написав свой собственный механизм.
Имхо
да ну ничего он не _противопоставил_, просто скрыл рутину под капот moc-компилятора, и всё.
в бусте вон, на шаблонах собрали всё то же самое, но они позже Qt пришли, им было проще

Все тоже самое, но синтаксис ближе к сишному)))
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
#include "boost/bind.hpp"

class MethodSlotClass
{
public:
    void MethodSlot()
    {
        std::cout<<"MethodSlot is called"<<std::endl;
    }
};

...

MethodSlotClass methodSlotObject;

//Подключаем метод
mainButton.OnPressed.connect(boost::bind(&MethodSlotClass::MethodSlot, &methodSlotObject));
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #40001391
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
PetroNotC SharpОн правит мой код через генерацию нового кода.

Так этим любой препроцессор занимается, вообще-то...
Выше рассуждали про аннотации
Кто то их любит. Кто то нет. Я не люблю.
Есть декларативное программирование. Ты любитель?
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #40001396
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorych,

>__published
= 2002 год?
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #40001397
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
egorych,

>__published
= 2002 год?
про легаси слышал, не?))
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #40001399
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorych,
Слышал. И лучше застрелюсь)))
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #40001452
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
egorych
пропущено...
с чего бы это? вызов метода класса по указателю - нет ничего более естественного, для сишника то

А где еще есть:
- зарезервированное слово public slots :
- мета объектный компилятор для правки исхолников?
Никакому прогеру не понравится когда его исходники правят)))

Это была вынужденная мера. И причина была в недостатках самого С++ на те времена.
Сейчас нет необходимости в макросах slots, да и в signals тоже.

Но и сейчас они могут (они вместе с кодогернератором) предоставить особую гибкость.
Но уж слишком особую, гибкость свойственную языкам без строгой типизации.
...
Рейтинг: 0 / 0
connect(): слоты и сигналы
    #40001498
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav,
Остается вопрос что тебя не устраивает как ТС и почему возник топик.
Я спокойно воспринимаю законы фреймворка.
Если есть спринг, то нужно писать по его законам.
Если есть Qt, то нужно писать тоже по его законам.
Как пример, использовать QString а не std::string и т.д.
Платформу событий тоже испрльзовать Qt.
...
Рейтинг: 0 / 0
130 сообщений из 130, показаны все 6 страниц
Форумы / C++ [игнор отключен] [закрыт для гостей] / connect(): слоты и сигналы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]