Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Ответы на контрольные вопросы по лекции 7

.docx
Скачиваний:
6
Добавлен:
20.06.2023
Размер:
17.45 Кб
Скачать

Ответы на контрольные вопросы по лекции 7

Дисциплина: объектно-ориентированное программирование

Студент: Заболотников М.Е.

Группа: 9373

  1. Что из себя представляет механизм сигнал-слот среды разработки объектно-ориентированных приложений Qt?

Это механизм, позволяющий соединить вместе объекты, не связанные друг с другом. Каждый унаследованный от QObject класс способен высылать и получать сигналы.

  1. Какими преимуществами обладает применение механизма сигнал-слот?

Применение механизма сигнал-слот обладает следующими преимуществами:

  1. каждый класс, унаследованный от QObject, может иметь любое количество сигналов и слотов;

  2. сообщения, посылаемые посредством сигналов, могут иметь множество аргументов любого типа;

  3. сигнал можно соединять с различным количеством слотов. Высылаемый сигнал, в этом случае, поступит ко всем подсоединенным слотам;

  4. слот может принимать сообщения от многих сигналов, принадлежащих разным объектам;

  5. соединение сигналов и слотов можно производить в любой точке приложения;

  6. сигналы и слоты являются механизмами, обеспечивающими связь между объектами. Более того, эта связь может выполняться между объектами, которые находятся в различных потоках в мультипоточных приложениях;

  7. при уничтожении объекта происходит автоматическое разъединение со всеми сигнально-слотовыми связями. Это гарантирует, что сигналы не будут высылаться к несуществующим объектам.

  1. Какие недостатки связаны с применением сигналов и слотов?

  1. сигналы и слоты не являются частью языка C++, поэтому требуется запуск дополнительного препроцессора перед компиляцией программы;

  2. отсылка сигналов немного медленнее, чем обычный вызов функции, который производится при использовании механизма функций обратного вызова;

  3. существует необходимость в наследовании класса QObject;

  4. в процессе компиляции не производится никаких проверок: имеется ли сигнал или слот в соответствующих классах или нет; совместимы ли сигнал и слот друг с другом и могут ли они быть соединены вместе. Об ошибке можно будет узнать лишь тогда, когда приложение будет запущено. Вся эта информация выводится на консоль, поэтому, для того чтобы увидеть ее в Windows, в проектном файле необходимо добавить в секции config опцию console (для Linux никаких дополнительных изменений проектного файла не требуется).

  1. Что такое слот и сигнал? Для чего делаются их соединения?

Сигнал – это метод, который в состоянии производить высылку сообщений. Соединяемые объекты могут быть абсолютно независимы и реализованы отдельно друг от друга. Это позволяет объекту, высылающему сигналы, не беспокоиться о том, что впоследствии будет происходить с этими сигналами. Объект, высылающий сигналы, может даже и не догадываться, что их принимают и обрабатывают другие объекты. Благодаря такому разделению, можно разбить большой проект на компоненты, которые будут разрабатываться разными программистами в отдельности, а потом соединяться при помощи сигналов и слотов вместе. Это делает код очень гибким и легко расширяемым, если вдруг один из компонентов устареет или должен будет реализован иначе, то все другие компоненты, участвующие в коммуникации с этим компонентом и сам проект, в целом, не изменятся. Новый компонент после разработки встанет на место старого и будет подключен к основной программе при помощи тех же самых сигналов и слотов.

  1. Что такое константные атрибуты и методы класса? Могут ли разные объекты иметь разные значения константных атрибутов?

Константный атрибут (свойство) класса – атрибут, который не изменяет своего значения на всем жизненном цикле существования объекта класса. Константный метод класса – это метод, который будучи примененным к объекту класса не может изменить значение ни одного его атрибута. Разные объекты могут иметь разные значения константных атрибутов.

  1. Что такое статические атрибуты и методы класса? Почему статические методы могут использовать только статические атрибуты?

Статический атрибут класса – это атрибут, который принимает в каждый момент времени жизненного цикла работы программы одинаковое значение для всех объектов класса, существующих в данный момент. Статический метод класса – это метод, использующий в своей реализации только статические атрибуты класса. Статические методы могут использовать только статические атрибуты потому, что статические атрибуты класса не зависят от объектов класса и эти методы не могут применяться к объектам класса.

  1. Можно ли применять статические методы к объектам класса?

Нет, нельзя.