Сколько плюсов у C++? AvaLANche Xakep, номер #058, стр. 058-090-5 template<class T> class Stack { T* v; void push (T); // добавляем элемент T pop (); удаляем элемент // ... } Префикс template<T> делает тип T параметром объявления. Такой стек так же легко использовать, как и обычный: Stack<int> si; si.push (24); Stack<MyString> sm; sm.push (MyString ("str")); sm.pop (); Кроме классов, шаблонами можно объявлять и функции, что тоже очень удобно. Это позволяет писать универсальные функции сортировки, поиска и замены элементов контейнеров-шаблонов. Шаблоны широко используются в стандартной библиотеке C++ - в STL (Standart Template Library). STL предоставляет пользователям туеву хучу всяких контейнеров (от строк до очередей с двумя концами), потоков ввода-вывода, универсальных алгоритмов и многое другое. Кроме того, она включает в себя всю стандартную библиотеку C. Вывод - must use. Пользоваться ей настоятельно рекомендую еще и потому, что писали ее не один год, постоянно улучшая и модернизируя. И если вдруг кому-то приспичит написать свой собственный вектор тихим майским вечером (лишь бы стандартный не использовать), вряд ли у него получится даже аналог STL'овского. Размеры статьи не позволяют даже кратко описать все возможности C++, поэтому я постарался сделать обзор самого главного, основополагающего - реализации различных техник и стилей программирования в этом языке. Опять же не претендуя на полноту. Всех заинтересовавшихся отправляю прямиком в книжный магазин - за книгой Страуструпа "Язык программирования C++". Прочитав эти несчастные 12 сотен страниц, ты сможешь реально оценить безграничные возможности языка C++. |