С++ для начинающих

       

Изменения в третьем издании


Все изменения можно разбить на четыре основные категории:

материал, посвященный нововведениям языка: обработке исключений, идентификации типа во время выполнения, пространству имен, встроенному типу bool, новому синтаксису приведения типов;

материал, посвященный стандартной библиотеке С++, в том числе типам complex, string, auto_ptr, pair, последовательным и ассоциативным контейнерам (в основном это list, vector, map и set) и обобщенным алгоритмам;

коррективы в старом тексте, отражающие улучшения, расширения и изменения, которые новый стандарт С++ привнес в существовавшие ранее средства языка. Примером улучшения может служить использование предваряющих объявлений для вложенных типов, ранее отсутствовавшая. В качестве примера изменения можно привести возможность для экземпляра виртуальной функции производного класса возвращать тип, производный от типа значения, возвращаемого экземпляром той же функции из базового класса. Это изменение поддерживает операцию с классами, которую иногда называют клонированием

или фабрикацией классов (виртуальная функция clone() иллюстрируется в разделе 17.5.7). Пример расширения языка – возможность явно специализировать один или более параметров-типов для шаблонов функций (на самом деле, весь механизм шаблонов был радикально расширен – настолько, что его можно назвать новым средством языка!);

изменения в подходе к использованию большинства продвинутых средств языка – шаблонов и классов. Стен считает, что его переход из сравнительно узкого круга разработчиков языка С++ в широкий круг пользователей позволил ему глубже понять проблемы последних. Соответственно в этом издании мы уделили большее внимание концепциям, которые стояли за появлением того или иного средства языка, тому, как лучше его применять и как избежать подводных камней.



Содержание раздела