Шаблоны

программирование C++

Недавно прочел главу из книги Страуструпа про шаблоны, однако не совсем понял сути.
Помогите разобраться: в чем предназначение шаблонов; в каких случаях без них не обойтись; какие приемущества они дают?
Парочку строк кода для иллюстрации, если можно :).


Примечание:
А вот можно использовать шаблон таким образом?
templane <int m, int n> class Matrix
{/*...*/};

Matrix<5,5> m;

т.е для проектирования класса для работы с матрицами (в данном случае для указания размеренности).

Примечание:
Blacklokky, спасибо

Примечание:
Igor Mikushkin, я в замешательстве! :)) попробую оба варианта
Спасибо!
Ответы:
Они нужны для обработки неважно каких типов данных по заданному тобой алгоритму.
То есть. Алгоритм - задан твоей программой. Но твоя программа "не знает" с какими данными она работает.
templane <int m, int n> class Matrix
{/*...*/};
chabapok-2 коротко и четко дал ответ. именно для этого и используются.
в реальной жизни - в основном для построения библиотек кода, которые можно было использовать в очень разных проектах.
самый известный и, в свое время, чуть ли не первый вариант таких библиотек - это standart template library (STL).  в ней есть реализация очень многих структур данных, которые используются очень часто (те же списки различных вариантов, векторы, очереди и т.д.) для реальных нужд. в итоге, если раньше приходилось писать чуть ли не каждому свой вариант реализации списка, да еще и каждый раз под определенный тип данных, то с использованием темплейтов с подобным изобретением колеса было покончено раз и навсегда.


16 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.