Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Мизрохи С.В. -> "Turbo Pascal и объектно-ориентированное программирование" -> 98

Turbo Pascal и объектно-ориентированное программирование - Мизрохи С.В.

Мизрохи С.В. Turbo Pascal и объектно-ориентированное программирование — М.: Финансы и статистика , 1992. — 192 c.
ISBN 5-279-00903-2
Скачать (прямая ссылка): efektispolzc2000.djvu
Предыдущая << 1 .. 92 93 94 95 96 97 < 98 > 99 100 101 102 103 104 .. 105 >> Следующая

Приведенные примеры показывают, как цели, поставленные при разработке С++, определяют поведение языка. Для того чтобы более-менее подробно рассказать об этом, потребовалась бы отдельная книга, - по счастью, такую книгу уже написал Страуструп. Она называется «Создание и эволюция C++» (Bjarne Stroustrup. The Design and Evolution of C++. Addison-Wesley, 1994); иногда для краткости ее называют просто D&E. Ознакомьтесь с этим изданием, и вы узнаете, какие возможности были добавлены к С++, в каком порядке и почему. Также в книге приводится информация о том, какие возможности были отвергнуты и по какой причине. Любопытно будет прочесть о том, как dynamic_cast (см. правило 39) был рассмотрен, отвергнут, затем снова рассмотрен и принят. Если вы еще не вполне уловили сущность языка С++, книга D&E поможет прояснить многие вопросы подобного рода.
«Создание и эволюция С++» содержит множество сведений, позволяющие понять, как С++ стал тем, чем он является сейчас; однако это никоим образом есть формальная спецификация языка. Чтобы получить представление о ней, BbI должны обратиться к международному стандарту языка С++ - объемному труДУ'
W
Правило 50
написанному официальным стилем и насчитывающему около 700 страниц. Здесь вы можете найти, например, такой захватывающий пассаж:
«При вызове виртуальной функции используются аргументы по умолчанию из объявления виртуальной функции, определяемые статическим типом указателя или ссылки, обозначающей объект. Переопределяющая функция из производного класса не получает аргументов по умолчанию из переопределяемой ею функции».
Приведенный абзац - основа правила 38 (никогда не переопределяйте наследуемые аргументы по умолчанию), но, смею надеяться, мое изложение темы чуть более доступно, нежели вышеприведенный текст.
Стандарт вряд ли подойдет для чтения перед сном, но он окажет вам неоценимую помощь, если вы с кем-либо еще (скажем, с создателем компилятора или другого инструмента для обработки кода) не можете прийти к общему мнению по поводу того, что такое С++. Ведь цель стандарта как раз и состоит в том, чтобы предоставить четкую информацию, устраняющую необходимость в подобных спорах.
Официальное название стандарта трудно выговорить, но, возможно, вам оно понадобится в дальнейшем, так что запомните его: International Standard for Information Systems - Programming Language С++. Документ опубликован рабочей группой № 21 Международной организации но стандартам (ISO), полное название которой - ISO/IEC JTC1/SC22/WG21. Вы можете заказать копию официального стандарта в вашей национальной организации по стандартам (в США это ANSI - Американский национальный институт стандартизации), но последние варианты данного проекта, которые очень близки (хотя и не идентичны) окончательному документу, легко найти в Internet. Я рекомендую вам обратиться за этой информацией по адресу http://www.cygnus.com/misc/wp/. Но, учитывая, что ки-берпространство постоянно изменяется, не удивляйтесь, если гиперссылка к тому времени, когда вы попытаетесь ею воспользоваться, окажется устаревшей. Впрочем, ваша любимая поисковая машина несомненно обнаружит требуемый адрес.
Как я уже говорил, книга «Создание и эволюция С++» крайне ценна для раскрытия секретов работы языка, а стандарт как нельзя лучше подходит для изучения всякого рода подробностей, но было бы неплохо иметь в распоряжении нечто среднее между глобальным обзором, представленным в D&E, и детальным подходом, заявленным в стандарте. Эту нишу должны заполнять учебники, но они в основном приближаются к стандарту, поэтому в них вопрос «что» освещен гораздо лучше, чем вопрос «почему».
Возьмите ARM - книгу Маргарет Эллис и Бьериа Страуструпа «Справочное Руководство по языку программирования С++ с комментариями»1 (Margaret Ellis, ?jarne Stroustrup. Annotated C++ Reference Manual. Addison-Wesley, 1990). Эта Публикация стала самым авторитетным источником, описывающим язык С++; К тому же международный стандарт С++ основывался на ARM (и на сущест-вУющем стандарте С). В последующие годы язык, описываемый стандартом, в ряде случаев разошелся с тем, который представлен в ARM, поэтому книга Эл-Дис и Страуструпа уже не считается официальным справочником, как было ранее.
1 М. Эллис, Б. Страуструп. Справочное руководство по языку программирования С++ с комментариями. - M.: Мир, 1992.
4
ЕИЯНШМННі; ДРУГИЄ ПРИНЦИПЫ
Однако она остается полезным руководством, поскольку большинство сведений, представленных в ней, по-прежнему верно, а разработчики С++ зачастую придерживаются ARM в тех областях спецификации С++, где стандарт был разработан лишь недавно.
Однако по-настоящему полезным ARM делает не то, что скрывается за аббревиатурой «RM» (Справочное руководство), а то, что обозначено буквой «А»: аннотации, то есть комментарии. ARM содержит обширные комментарии, объясняющие, почему многие инструменты С++ ведут себя так, а не иначе. Часть этой информации можно найти и в D&E, но необходимо знать ее во всей полноте. Вот пример, который обычно доводит до белого каления тех, кто сталкивается с ним впервые:
Предыдущая << 1 .. 92 93 94 95 96 97 < 98 > 99 100 101 102 103 104 .. 105 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100