Материалы книги получены с http://www.itlibitum.ru/
Комбинации простых и параметризованных типов
Предположим, у вас имеется параметризованный класс, реализация всех функций которого занимает 1000 строк. При каждом его использовании для нового типа компилятор радостно выплевывает очередные 1000 строк расширенного кода. Даже при нынешних ценах на память это слишком высокая цена за безопасность типа.
Допустим, вы продаете библиотеку классов и не хотите поставлять исходный текст, а только интерфейсы. Если библиотека содержит параметризованные функции, они должны находиться в открытом для всего мира файле .h. Обидно. Допустим, кто-то передает вам замечательный, но небезопасный по отношению к типам класс или библиотеку классов. Может быть, он был написан на компиляторе, который не поддерживает шаблоны,
или автор просто не верит в шаблоны. Вам хочется подправить код и сделать его безопасным с помощью шаблонов. Но хотите ли вы переделывать все подряд, включать весь код реализации в файлы .h и добавлять в объявления класса параметры и символы <>?
Во всех описанных ситуациях стоит использовать параметризованный тип в сочетании с простым, непараметризованным типом. Когда это будет сделано, в 99 случаях из 100 параметризованный тип «заворачивает» простой тип в симпатичную, мягкую и безопасную по отношению к типам оболочку. При этом простой класс не изменяется - просто параметризованный класс помещается между небезопасным классом и пользователем. Для таких ситуаций существует ряд стандартных приемов и многочисленные идиомы, основанные на этой идее.
Назад Содержание Далее
|