С.Б. Липпман, Ж. Лажойе - Язык программирования С++ Вводный курс (1114944), страница 3
Текст из файла (страница 3)
Примером улучшенияможет служить использование предваряющих объявлений для вложенных типов, ранееотсутствовавшая. В качестве примера изменения можно привести возможность дляэкземпляра виртуальной функции производного класса возвращать тип, производный оттипа значения, возвращаемого экземпляром той же функции из базового класса. Этоизменение поддерживает операцию с классами, которую иногда называют клонированиемили фабрикацией классов (виртуальная функция clone() иллюстрируется в разделе 17.5.7).Пример расширения языка – возможность явно специализировать один или болеепараметров-типов для шаблонов функций (на самом деле, весь механизм шаблонов былрадикально расширен – настолько, что его можно назвать новым средством языка!);изменения в подходе к использованию большинства продвинутых средств языка – шаблонови классов.
Стен считает, что его переход из сравнительно узкого круга разработчиков языкаС++ в широкий круг пользователей позволил ему глубже понять проблемы последних.Соответственно в этом издании мы уделили большее внимание концепциям, которые стоялиза появлением того или иного средства языка, тому, как лучше его применять и как избежатьподводных камней.Будущее С++Во время публикации книги комитет по стандартизации С++ ISO/ANSI закончилтехническую работу по подготовке первого международного стандарта С++.
Стандартопубликован Международным комитетом по стандартизации (ISO) летом 1998 года.Реализации С++, поддерживающие стандарт, должны появиться вскоре после егопубликации. Есть надежда, что после публикации стандарта изменения в С++ перестанутбыть столь радикальными. Такая стабильность позволит создать сложные библиотеки,написанные на стандартном С++ и направленные на решение различных промышленныхзадач. Таким образом, основной рост в мире С++ ожидается в сфере создания библиотек.После публикации стандарта комиссия тем не менее продолжает свою работу, хотя и не такинтенсивно. Разбираются поступающие от пользователей вопросы по интерпретации тех илииных особенностей языка. Это приводит к небольшим исправлениям и уточнениям стандартаС++.
При необходимости международный стандарт будет пересматриваться каждые пять лет,чтобы учесть изменения в технологиях и нужды отрасли.Что будет через пять лет после публикации стандарта, пока неизвестно. Возможно, новыекомпоненты из прикладных библиотек войдут в стандартную библиотеку С++.
Но сейчас,после окончания работы комиссии, судьба С++ оказывается в руках его пользователей.БлагодарностиС++ для начинающих9Особые благодарности, как обычно, мы выражаем Бьерну Страуструпу за прекрасный язык,который он подарил нам, и за то внимание, которое он оказывал ему все эти годы. Особыеблагодарности членам комитета по стандартизации С++ за их самоотверженность и упорнуюработу (часто безвозмездную) и за огромный вклад в появление Стандарта С++.На разных стадиях работы над рукописью многие люди вносили различные полезныезамечания: Пол Эбрахамс (Paul Abrahams), Майкл Болл (Michael Ball), Стивен Эдвардс(Stephen Edwards), Кэй Хорстманн (Cay Horstmann), Брайан Керниган (Brian Kernighan), ТомЛайонс (Tom Lyons), Роберт Мюррей (Robert Murray), Эд Шейбель (Ed Scheibel), Рой Тэрнер(Roy Turner), Йон Вада (Jon Wada).
Особо нам хочется поблагодарить Майкла Болла заважные комментарии и поддержку. Мы благодарим Кловис Тондо (Clovis Tondo) и БрюсаЛеюнга (Bruce Leung) за вдумчивую рецензию.Стен выражает особо теплую благодарность Ши-Чюань Хуань (Shyh-Chyuan Huang) иДжинко Гото (Jinko Gotoh) за их помощь в работе над рассказом о Жар-Птице (Firebird),Иона Ваду и, конечно, Джози.Джози благодарит Габби Зильберман (Gabby Silbermarr), Карен Беннет (Karen Bennet), атакже команду Центра углубленных исследований (Centre for Advanced Studies) за поддержкуво время написания книги.
И выражает огромную благодарность Стену за привлечение кработе над книгой.Мы оба хотим поблагодарить замечательный редакторский коллектив за их упорную работуи безграничное терпение: Дебби Лафферти (Debbie Lafferty), которая не оставлялавниманием эту книгу с самого первого издания, Майка Хендриксона (Mike Hendrickson) иДжона Фуллера (John Fuller). Компания Big Purple Company проделала замечательную работупо набору книги. Иллюстрация в разделе 6.1 принадлежит Елене Дрискилл (Elena Driskill).Мы благодарим ее за разрешение перепечатки.Благодарности во втором изданииЭта книга явилась результатом работы множества остающихся за сценой людей, помогавшихавтору.
Наиболее сердечные благодарности мы приносим Барбаре Му (Barbara Moo). Ееподдержка, советы, внимательное чтение бесчисленных черновиков книги простонеоценимы. Особые благодарности Бьярну Страуструпу за постоянную помощь и поддержкуи за прекрасный язык, который он подарил нам, а также Стивену Дьюхерсту (StephenDewhurst), который так много помогал мне при освоении С++, и Ненси Уилкинсон (NancyWilkinson) – коллеге по работе над cfront.Дэг Брюк (Dag Bruck), Мартин Кэрролл (Martin Carroll), Уильям Хопкинс (William Hopkins),Брайан Керниган (Brian Kernighan), Эндрю Кениг (Andrew Koenig), Алексис Лейтон (AlexisLayton) и Барбара Му (Barbara Moo) помогали нам особо ценными замечаниями.
Ихрецензии значительно улучшили качество книги. Энди Бейли (Andy Baily), Фил Браун (PhilBrown), Джеймс Коплиен (James Coplien), Элизабет Флэнаган (Elizabeth Flanagan), ДэвидДжордан (David Jordan), Дон Кретч (Don Kretsch), Крейг Рубин (Craig Rubin), ДжонатанШопиро (Jonathan Shopiro), Джуди Уорд (Judy Ward), Ненси Уилкинсон (Nancy Wilkinson) иКлей Уилсон (Clay Wilson) просмотрели множество черновиков книги и дали многополезных комментариев.
Дэвид Проссер (David Prosser) прояснил множество вопросов,касающихся ANSI C.Джерри Шварц (Jerry Schwarz), автор библиотеки iostream, обеспечил нас оригинальнойдокументацией, которая легла в основу Приложения А (глава 20 в третьем издании). Мывысоко оцениваем его замечания к этому Приложению. Мы благодарим всех остальныхС++ для начинающих10членов команды, работавшей на версией 3.0: Лауру Ивс (Laura Eaves), Джорджа Логотетиса(George Logothetis), Джуди Уорд (Judy Ward) и Ненси Уилкинсон (Nancy Wilkinson).Джеймс Эдкок (James Adcock), Стивен Белловин (Steven Bellovin), Йон Форрест (Jon Forrest),Морис Эрлих (Maurice Herlihy), Норман Керт (Norman Kerth), Даррелл Лонг (Darrell Long),Виктор Миленкович (Victor Milenkovic) и Джастин Смит (Justin Smith) рецензировали книгудля издательства Addison-Wesley.Дэвид Беккердорф (David Beckedorff), Дэг Брюк (Dag Bruck), Джон Элбридж (John Eldridge),Джим Хьюмелсин (Jim Humelsine), Дэйв Джордан (Dave Jordan), Эми Клейнман (AmiKleinman), Эндрю Кениг (Andrew Koenig), Тим О'Конски (Tim O'Konski), Кловис Тондо(Clovis Tondo) и Стив Виноски (Steve Vinoski) указали на ошибки в первом издании.Я выражаю глубокую благодарность Брайану Кернигану (Brian Kernighan) и Эндрю Кенигу(Andrew Koenig) за программные средства для типографского набора текста.Список литературыСледующие работы либо оказали большое влияние на написание данной книги, либопредставляют ценный материал по С++, который мы рекомендуем читателю.[BOOCH94] Booch, Grady, Object-Oriented Analysis and Design, Benjamin/Cummings.
RedwoodCity, CA (1994) ISBN 0-8053-5340-2.[GAMMA95] Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides, Design Patterns,Addison Wesley Longman, Inc., Reading, MA (1995) ISBN 0-201-63361-2.[GHEZZI97] Ghezzi, Carlo, and Mehdi Jazayeri, Programming Language Concepts, 3rd Edition,John Wiley and Sons, New York, NY (1997) ISBN 0-471-10426-4.[HARBISON88] Samuel P.
Harbison and Guy L. Steele, Jr., C: A Reference Manual, 3rd Edition,Prentice-Hall, Englewood Cliffs, NJ (1988) ISBN 0-13-110933-2.[ISO-C++97] Draft Proposed International Standard for Information Systems — ProgrammingLanguage C++ – Final Draft (FDIS) 14882.[KERNIGHAN88] Kernighan, Brian W.I. and Dennis M. Ritchie, The C Programming Language,Prentice-Hall, Englewood Cliffs, NJ (1988) ISBN 0-13-110362-8.[KOENIG97] Koenig, Andrew, and Barbara Moo, Ruminations on C++, Addison Wesley Longman,Inc., Reading, MA (1997) ISBN 0-201-42339-1.[LIPPMAN91] Lippman, Stanley, C++ Primer, 2nd Edition, Addison Wesley Longman, Inc.,Reading, MA (1991) ISBN 0-201-54848-8.[LIPPMAN96a] Lippman, Stanley, Inside the C++ Object Model, Addison Wesley Longman, Inc.,Reading, MA (1996) ISBN 0-201-83454-5.[LIPPMAN96b] Lippman, Stanley, Editor, C++ Gems, a SIGS Books imprint, CambridgeUniversity Press, Cambridge, England (1996) ISBN 0-13570581-9.[MEYERS98] Movers, Scott, Effective C++, 2nd Edition, Addison Wesley Longman, Inc., Reading,MA (1998) ISBN 0-201-92488-9.[MEYERS96] Meyers, Scott, More Effective C++, Addison Wesley Longman, Inc., Reading, MA(1996) ISBN 0-201-63371-X.С++ для начинающих11[MURRAY93] Murray Robert B., C++ Strategies and Tactics, Addison Wesley Longman, Inc.,Reading, MA (1993) ISBN 0-201-56382-7.[MUSSER96] Musser, David R., and Atui Saint, STL Tutorial and Reference Guide, AddisonWesley Longman, Inc., Reading, MA (1996) ISBN 0-201-63398-1.[NACKMAN94] Barton, John J., and Lee R.
Nackman, Scientific and Engineering C++, AnIntroduction with Advanced Techniques and Examples, Addison Wesley Longman, Inc., Reading,MA (1994) ISBN 0-201-53393-6.[NEIDER93] Neider, Jackie, Tom Davis, and Mason Woo, OpenGL Programming Guide, AddisonWesley Inc., Reading, MA (1993) ISBN 0-201-63274-8.[PERSON68] Person, Russell V., Essentials of Mathematics, 2nd Edition, John Wiley & Sons, Inc.,New York, NY (1968) ISBN 0-132-84191-6.[PLAUGER92] Plauger, P.J., The Standard C Library, Prentice-Hall, Englewood Cliffs, NJ (1992)ISBN 0-13-131509-9.[SEDGEWICK88] Sedgewick, Robert, Algorithms, 2nd Edition, Addison Wesley Longman, Inc.,Reading, MA (1988) ISBN 0-201-06673-4.[SHAMPINE97] Shampine, L.E, R.C.