Холивар по поводу реализации. С++ и Qt

202
29 июня 2018, 04:50

Есть объект A который владеет объектом B (объявляется и инициализируется в конструкторе объекта A и является членом объекта A).

Разгорелся настоящий холивар по поводу того, как лучше обеспечить взаимодействие этих двух объектов.

Решения:

  • Первое решение предполагает создание у объекта A Qt-сигнала, а у объекта B публичного слота. И эти сигнал и слот коннектятся в конструкторе объекта A. И при наступлении определенного события объект A сообщает объекту B о наступлении этого события и объект B выполняет определенный алгоритм.

  • Второе решение предполагает создание у объекта B публичного метода и при наступлении события в методе объекта A вызывается публичный метод объекта B.

Так вот из-за этого разгорелся нешуточный холивар со влечением в него кучи народу.

Сугубо мое мнение, что это дело вкуса и предпочтения. Что обе реализации ничем не отличаются.

Хотел бы посмотреть, что скажет сообщество по этому поводу. Какие плюсы и минусы у каждой реализации?

Answer 1

Отличия есть.

  • Во первых, использование Qt подхода позволяет развязать два класса - они могут ничего не знать друг о дружке. Только порядок аргументов. Иногда это бывает удобно.

  • Qt подход позволяет легко отложить выполнение кода (Queued), отложить на какое то время (QTimer) или даже запустить в отдельном потоке.

Минус - завязываемся на Qt.

READ ALSO
Перезапуск цикла через n секунду

Перезапуск цикла через n секунду

Есть приложение, реализующее обработку изменяющегося файлаНа форме есть кнопки "Старт" и "Стоп" меняющие значение переменной active

201
буфер обмена с++

буфер обмена с++

Есть вот такой код:

203
Функция в С++ для проверки на простоту

Функция в С++ для проверки на простоту

Существует ли функция в С++ в STL для проверки, является ли число простым, и если да, то где про нее почитать? (или просто шаблон дайте)

207