Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #58, ОКТЯБРЬ 2003 г.

Сколько плюсов у 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++.

Назад на стр. 058-090-4  Содержание