Б. Страуструп - Язык программирования С++. Специальное издание, 3-изд. Бином. 2004 (1160791), страница 6
Текст из файла (страница 6)
И все-такн в нескольких случаях принятые переводчиками и редакторами решения могут показаться произвольными, и мы хотели бы прокомментировать соответствующие ~ермины. Слово «зсаьешепг» принято переводить на русский язык как «оператор». Мы привыкли к тому, что (/, щг1Де, сазе и т. д. — зто операторы. Увы, в контексте Сь такой перевод неприемлем, Дело в том, что в С+«слово «орегасог» (которое и переведено как «оператор») имеет совсем другое значение.
Оно применяется для обозначения сложения (оператор +), разыменования (оператор *), выяснения размера (оператор з1гео/(1) и в других подобных случаях. С учетом того, что большинство операторов С«+ допускает перегрузку, синтаксически и семантически напоминающую (пере)оп- От редакции 28 ределсние функций, можно сказать, что операторы в С+« сродни функциям. Кстати, автор употребляет также и термин «орегасюп» (так и переведенный: «операция»), который в С+«не имеет какого-то специального смысла н в большинстве случаев может рассматриваться или как синоним слова «оператор», или как обозначение какого-то действия. Что же касается термина «зГагещепГ», то из предлагаемых различными словарями вариантов «утверждение», «прелложение» и «инструкция» мы избрали последний, так как он, по-видимому, лучше всего соответствует сущности обозначаемых словом «згагетепг» конструкций С«+ н, кроме того, периодически встречается в книгах и документации в нужном значении. Итак, (б шЛ!(е, сазе, ...— это инструкции, а «, —, зьаеоЯ, ...
— операторы, В частности, = — это оператор присваивания, семантику которого можно изменить путем перегрузки, а вот запись а = Ь; является инструкцией присваивания, семантика которой неизменна, фиксирована языком и состоит в вызове (возможно перегруженного) оператора присваивания с аргументами а и Ь. Говоря о преобразованиях типов, мы используем два термина. Здесь мы просто следуем оригиналу термин «сопчеггйоп» переведен как «преобразование», а «сазг»вЂ” как «приведение».
Оператор:: в переводе назван «оператором разрешення области видимости», что в точности соответствует оригинальному «зсоре гезо1пноп орегатог». Такой перевод представляется нам более удачным, чем иные варианты, предлагаемые словарямп (например, «оператор определения контекста»). Разумеется, слово «разрешенис» в данном случае употреблено в значении «уточненне, выяснение, разрешение неоднозначности», а не в смысле «позволение, допущение». В С«+, в отличие от некоторых других языков программирования, существенно различие между обьявлением (бес!агайоп) и определением (с!ейпМоп) переменной. класса, функции и т.
д. Не всякое объявление является определением, а в некоторых случаях об.ьявлспис просто необходимо поместить до соответствующего определения. Таким образом, употребление двух различных терминов («объявление» и «определение») вместо единственного привычного многим слова «оппсание» является намеренным и неизбежным. В авторском тексте встречаются как термин «)зеапег» («заголовок»), так и словосочетание «)~еаг1ег 111е» («заголовочный файл»). Никаких смысловых разли нш между этими вариантами не проводится, поэтому в переводе ьчы чаще испольэовали более привычное «заголовочный файл», но иногда (хотя бы для разнообразия) оставляли и «заголовок».
Стандарт В разгар работ по подготовке русского издания стандарт С«-«, на котором основана данная книга, находился в состоянии «АЯ81/180 Впа1 бга(г», то есть ешс не был формально утвержден, но был «почтн окончательно» согласован. На этой стадии стандарт уже пе мог претерпеть сколь-нибудь существенных изменений, однако некоторые уточнения были еше возможны. Ло мере появления соответствующей информации необходимыс исправления вносились как в оригинальное издание, так и в русский перевод (см.
выше). В августе 1998 года стандарт 180/1ЕС 14882 «Вгапоаго' 1ог гпе С«+ Ргойгашшпзй 1.апйпайе» был единогласно принят. В заключении хотелось бы поблагодарить д-ра Страуструпа за блестящую книгу, работа с которой доставила нам истинное удовольствие, и за то, что он нашел время для полготовки предисловия к ее русскому изданию. Предисловие Прозролглгирооать — значит аонгглгаты — Крш тон Ннгаггрд Я нахожу Сев очень удобным языком, причем в последние годы мое мнение только укрепилось. За минувшие несколько лет средства поддержки проектирования н программирования на Се+ улучшнлпсь кардинальным образом, и, кроме того, было предложено множество новых методов их использования. Однако программирование на Сее — не только доставляет удовольствие.
Обыкновенные программисты- практики достигли значительного повышения производительности, уровня сопровождения, гибкости и качества в проектах самого разного масштаба. К настоящему времени С+ч- оправдал большинство надежд, которые я связывал с ннм вначале, и даже преуспел в задачах, о которых я и не мечтал. Эта книга представляет стандарт С-'е' и основные методы программирования и проектирования, поддерживаемые С+ К Предлагаемьш стандарт Сел- гораздо мощнее и яснее, чем тот, который описан в первом издании этой книги.
Новые свойства языка, такие как пространства имен, обработка исключегшй, шаблоны и определение типа во время выполнения, позволяют применять многие методы непосредственно — что было невозможно ранее, а стандартная библиотека предоставляет программисту возможность начать со значительно более высокого уровня, чем просто «гольш» язык. Всего лишь около трети информацгш из первого издания перешло во второе.
Это, третье издание, является еще более полнои переработкой предыдущего текста. В нем излагается информация, полезная даже самым опытным программистам на С г-г. С другой стороны, эту книгу новичку читать проще, чем предшествующие. Столь конструктивная переработка книги стала возможной благодаря широкому применению Сел н большому накопленному опыту. Понятие стандартной библиотеки позволяет по-новому взглянуть на концепции С++. Как и ранее, в этой книге С+ч- описывается независимо от конкретной реализации, и учебные главы вводят конструкции и понятия чснггзу вверхж таким образом, они используготся только после того, как описаны.
Однако, значительно проще применять хорошо спроектированную библиотеку, чем понять детали ее реалпзаппп. Поэтому стандартную библиотеку можно использовать для создания реалистичных и интересных примеров задолго до того, как читатель познакомится с ее внутренним устройством. Стандартная библиотека сама по себе является богатейшим источником примеров программирования и проектирования.
В этой книге описываются все основные средства языка С++ и станлартной библиотеки. Изложение материала базируется на возможнос~ях языка ц библиотеки, рассматриваемых в контексте их использования. Такнм образом, внимание, скорее сосредоточено на языке, как на средстве проектирования и программирования, чем на языке как таковом.
Книга демонстрирует клк>чевьге методы, которые делают Се'- эффектнвным, и учит фуггдаментальным концепциям, необходимым для достижения мастерства. За исключением мест, иллюстрирующих технические детали, примеры ' 180/1ЕС 1дг882, 8гаггг1агг1 1ог Йе С+в Ргойгапгггггп8 1.ал8ггайе (Стандарт языка программирования С+ К Предисловие 30 взяты из области системного программирования.
В качестве дополнения к этой книге можно рассматривать справочник Тйе Ллпогагес! С-ь-ь Галйиайе Бгасгс(агс( (« Стандарт языка Сч-+ с комментариямп»), в котором дано полное описание языка с исчерпывающими комментариями. Оснонная цель данной книги — помочь читателю понять, как срелства Счэ поддерживают ключевые методы программирования. Задача состоит в том, чтобы поднять читателя цад тем уровнем, на котором он в основном копирует примеры кода и эмулирует стили просраммссрования, присущие другим языкам. Только хорошее понимание идей, стоящих за свойствами языка, недст к мастерстну. Изложенная информация, дополненная локументацней по конкретной реализации, является достагочнои для написания даже больших реальных проектов. Я надеюсь, что эта книга поможет читателю по-новому взглянуть на вещи и научиться лучше программировать и проектировать.