Вопросы к лекциям / ООП_ВопрКЛек9_0361_ЦукановаПА
.pdfКонтрольные вопросы к лекции №9
1.Что из себя представляет шаблон функций? Для чего он используется?
Шаблон функции позволяет определить обобщенную функцию, которая может принимать аргументы различных типов. Он позволяет создавать функции, которые могут работать с аргументами различных типов без необходимости создания нескольких версий функции для каждого типа отдельно.
2.Что является параметром шаблона? Сколько может быть параметров
ушаблона и как соотносятся между собой перечисления этих параметров в заголовке шаблона и в списке формальных параметров функций-шаблонов?
Параметром шаблона в C++ является обобщенный тип, который определяется в заголовке шаблона функции или класса. Они указывают, какие типы используются в обобщенной функции или классе. Шаблон функции может иметь любое количество параметров, а каждый параметр может быть любым типом, включая другой шаблон.
3.В чем схожесть и различие шаблонов функций и шаблонов классов? Основное сходство между шаблонами функций и шаблонами классов
заключается в том, что оба позволяют создавать обобщенный код без привязки к конкретному типу данных. Таким образом, шаблоны позволяют повысить универсальность кода и сделать его более гибким.
4.Может ли шаблон компилироваться в программный модуль (объектный код) и почему? В каких файлах рекомендуется описывать реализацию методов параметризованных классов?
Да, шаблон может быть скомпилирован в программный модуль, как и любой другой код на языке программирования. Реализация методов параметризованных классов должна быть описана в файле заголовка (.h), так как тело методов должно быть доступно на этапе компиляции
5.В какой момент из шаблона класса создается реальный класс? Возможно ли в одном приложении из одного шаблона создание нескольких классов?
Реальный класс, созданный из шаблона класса, создается в момент компиляции, когда создаются объектные файлы. Конкретный класс создается при первом использовании шаблона для определенного набора параметров шаблона. Таким образом, для каждого уникального набора параметров шаблона будет создан отдельный класс.