Программирование >>  Оптимизация возвращаемого значения 

1 ... 89 90 91 [ 92 ] 93 94 95 96


Список рекомендуемой литературы

Ральф Джонсон и Джон Влиссид. Паттерны разработки: элементы повторно используемого объектно-ориентированного программного обеспечения), Addison-Wesley 1995, ISBN 0-201-63361-2.

Эта книга дает обзор идей, на которых основаны паттерны, но главное в ней -каталог из 23 важнейших паттернов, полезных во многих прикладных областях. Путешествуя по этим страницам, вы почти обязательно обнаружите паттерн, кото рый вам пришлось бы изобретать самостоятельно, и поймете, что его дизайн в книге превосходит подход, специально разработанный вами для такого случая. Имена этих паттернов уже стали частью создающегося словаря объект но-ориентированного программирования; их незнание в скором времени может поставить под угрозу ваше взаимодействие с коллегами. Основное преимущество данной книги заключается в том, что в ней делается акцент на разработку и реализацию программ, способных элегантно приспосабливаться к будущей эволюции (см. правила 32 и 33).

Книга доступна также на компакт-диске:

Design Patterns CD: Elements of Reusable Object-Oriented Software, Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, Addison-Wesley, 1998, ISBN 0-201-63498-8.

Журналы

Для настоящих программистов на С++ существует только один журнал: С++ Report, SIGS Publications, New York, NY.

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

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

C/C++ Users Journal, Miller Freeman, Inc., Lawrence, KS.

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

Группы новостей USENET

Языку С++ посвящены три группы новостей USENET. Группа сотр.lang.С++ является универсальной, и в нее сваливается все подряд. Диапазон сообщений простирается от подробных объяснений сложных методов программирования до проповедей и бреда тех, кто любит и ненавидит С++, и студентов со всего мира,



которые просят помочь им сделать домашнее задание, откладываемое до тех пор, пока не стало слишком поздно. Объем сообщений в этой группе очень велик. Если вы не располагаете часами свободного времени, вам потребуется фильтр, чтобы отделить зерна от плевел, причем хороший фильтр, так как мусора в конференции много.

В ноябре 1995 года была создана модерируемая версия группы comp.lang.c++. Эта группа новостей, которая называется сотр.lang.c++.moderated, также предназначена для общего обсуждения С++ и связанных с ним вопросов, но модераторы стремятся удалять вопросы, относящиеся к конкретной реализации; вопросы, ответы на которые содержатся в списке FAQ (Frequently Asked Questions - часто задаваемые вопросы); флейм и другие вещи, которые мало интересуют большинство практикующих программистов на С++.

Группа новостей comp.std.c++ имеет более узкий фокус и посвящена обсуждению самого стандарта С++. Здесь много знатоков языка, но сюда имеет смысл обратиться, если ваши сложные вопросы о С++ остаются без ответа в других доступных справочниках. Эта группа также является модерируемой, поэтому отношение сигнал/шум в ней достаточно высоко; здесь вы не встретите просьбы помочь с домашним заданием.



Приложение 2

Реализация шаблона auto ptr

в правилах 9, 10, 26, 31 и 32 упоминается исключительная полезность шаблона auto ptr. К сожалению, мало компиляторов содержат его правильную реализацию.* В правилах 9 и 28 описано в общих чертах, как можно создать этот шаблон самостоятельно, но, начиная работу над реальными проектами, лучше иметь не просто набросок.

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

Вот шаблон auto ptr, интерфейс которого документирован:

template<class Т> class auto ptr { public:

explicit auto ptr{T *p = 0);

template<class U> auto ptr{auto ptr<U>& rhs)

~auto ptr{); template<class U> auto ptr<T>&

operator=(auto ptr<U>& rhs) TSc operator* {) const;

Cm. описание explicit в правиле 5. Шаблон конструктора копирования (см. правило 28) : инициализация нового auto ptr при помощи любого совместимого auto ptr.

Шаблон оператора

присваивания (см. правило 28) ;

присвоить от любого

совместимого auto ptr.

См. правило 28.

Это связано в основном с тем, что спецификация шаблона auto ptr менялась в течение ряда лет. Последняя спецификация была принята только в ноябре 1997 года. Вы можете найти подробную информацию о шаблоне auto pt г на WWW- и FTP -сайтах этой книги (см. стр. 21 -22). Обратите внимание, что в описанной здесь реализации auto ptr опушены некоторые детали официальной версии, например то, что auto ptr находится в пространстве имен std (см. правило 35) и что его функции-члены не должны генерировать исключений.



1 ... 89 90 91 [ 92 ] 93 94 95 96

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика