Помогите разобраться с шаблонами
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Начал разбираться с шаблонами, но что-то никак не укладывается в голове их смысл.
Вернее, в теории я понимаю, что из шаблона можно создать любой класс с нужными параметрами, встроенными или пользовательскими. НО! Ведь у каждого создаваемого класса есть СВОЕ тело, со своими методами и членами. И что для каждого нужно делать свой индивидуальный шаблон? Смысла не вижу.
Может я не так это понимаю?
Спасибо.
p.s. Разбор примеров из учебников ясности не прибавил. Там типа создается обычный класс и дальше определяется шаблон. К чему он там относится и что из этого шаблона там делается непонятно...
Рассматривай шаблоны как параметризованное определение функций (или классов). Роль параметра играет тип. В остальном — все как при определении обычных функций: при определении — формальный параметр (typename T), при инстанцировании шаблона — фактический параметр тип, существующий в программе.
Шаблоны — это метапрограммирование. Т.е. написание программы для компилятора С++ (который здесь выступает в роли интерпретатора) на некоем метаязыке (не С++!), результатом выполнения которой является программа на С++. (Во я загнул!))))
Из книги:
Например, ниже определен шаблон для функции с именем тах, которая возвращает большее из двух значений:
Где написано. что шаблон для функции по имени тах?
что означает
Т mах(Т а, Т b)
я так понял, что a и b это параметры для функций, которые будут создаваться из этого шаблона?
Шаблоны и шаблонные функции в C++. Введение
Читали? Если нет, то почитайте, не зря же писал )))