![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Шаблоны представляют собой мощное и эффективное средство обращения с различными типами данных, которое можно назвать параметрическим полиморфизмом, а также обеспечивают безопасное использование типов.
Однако следует иметь в виду, что программа, использующая шаблоны, содержит полный код для каждого порожденного типа, что может увеличить размер исполняемого файла. Кроме того, с некоторыми типами данных шаблоны могут работать менее эффективно, чем с другими. В этом случае имеет смысл использовать специализацию шаблона.
----------------------------------
Рассмотрим процесс создания шаблона класса «линейные списки». Поскольку списки часто применяются для организации данных, удобно описать список в виде класса, а так как может потребоваться хранить данные различных типов, этот класс должен быть параметризованным.
Сначала рассмотрим не параметризованную версию класса «двусвязанный линейный список».
Список состоит из узлов, связанных между собой с помощью указателей. Каждый узел хранит целое число (для простоты), являющееся ключом списка. Опишем вспомогательный класс для представления одного узла списка:
class Node{
public:
int d; // Данные
Node *next; // Указатель на последующий узел
Node *prev; // Указатель на предыдущий узел
Node(int dat = 0){ // Конструктор
d = dat; next = 0; prev = 0;
}
};
Поскольку этот класс будет описан внутри класса, представляющего список, поля для простоты доступа из внешнего класса сделаны доступными (public).
Это позволяет обойтись без функций доступа и изменения полей. Назовем класс списка List:
class List{
Дата публикования: 2014-11-28; Прочитано: 252 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!