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

1 2 [ 3 ] 4 5 6 ... 96


которые должны освобождаться при удалении объекта Widget. Если Widget не будет удален, то доступ к этим ресурсам будет утерян так же, как и к занимаемой ими области памяти. Чтобы подчеркнуть, что утечки памяти в С++ часто приводят к утечкам других ресурсов, я буду использовать выражение утечка ресурсов во всех сл5аях.

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

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

Клиент (или пользователь) - это кто-то (возможно, программист) или что-то (обычно класс, функция), использующий написанный вами код. Например, вы создали класс Date (для описания дней рождения, календарных сроков, дня второго пришествия и т.п.). Тогда всякий, обращающийся к этому классу, является вашим клиентом. Далее, любые модули, использующие класс Date, также окажутся вашими клиентами. Ради клиентов и ведется разработка! Если ваше программное обеспечение никому не требуется, зачем его создавать? Читая книгу, вы заметите, что я прикладываю массу усилий, чтобы облегчить жизнь клиентам, часто за ваш счет, поскольку хорошее программное обеспечение должно быть клиенто-центричным : оно должно вращаться вокруг клиентов. Если это кажется вам излишней филантропией, посмотрите на проблему с точки зрения собственных интересов. Используете ли вы ваши классы и функции повторно? Если да, то вы -ваш собственный клиент, и облегчая жизнь клиентам вообще, вы облегчаете ее самому себе.

Рассуждая о шаблонах классов или функций и сгенерированных по этим шаблонам объектах, я позволю себе быть несколько неряшливым и особо не подчеркивать разницу между шаблонами и созданными по ним объектами. Например, если Array - это шаблон класса с параметром Т, то я могу ссылаться на шаблонный класс как на Array, хотя на самом деле его правильное имя - Аг гау<Т>. Аналогично, если swap - шаблон функции с параметром типа Т, то имя swap (вместо swap<T>) также может обозначать и шаблонную функцию. Разумеется, если



Принятые обозначения

Для более простого восприятия материала в книге приняты следующие условные обозначения.

Все листинги, приведенные в книге, напечатаны моноширинным шрифтом.

Имена классов, объектов, переменных, констант и т.д., встречающиеся непосредственно в тексте, также даны моноширинным шрифтом.

Информация, которую необходимо обязательно принять к сведению, выделена курсивом.

Как сообщить об ошибках, внести предложения, получить обновления книги

Насколько это возможно, я старался сделать книгу точной, удобной для чтения и полезной, однако нет предела совершенству. Если вы обнаружите в ней какую-либо ошибку: техническую, грамматическую, опечатку, какую-нибудь - пожалуйста, сообщите мне об этом. Я постараюсь исправить допущенную оплошность в последующих изданиях книги, а если вы окажетесь первым, кто сообщит об ошибке, с удовольствием добавлю ваше имя в список благодарностей. Если у вас появятся другие предложения по улучшению книги, также буду вам очень признателен.

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

Scott Meyers

с/о Editor-in-Chief, Corporate and Professional Publishing

Addison-Wesley Publishing Company

1 Jacob Way

Reading, MA 01867

U.S.A.

Вы также можете послать сообщение электронной почты по адресу: mec++@awl.com.

Я веду список изменений, таких как исправления ошибок, пояснения и обновления, внесенных в книгу с первого издания. Этот список, а также другие материалы, связанные с данной книгой, размещен на Web-сайте издательства Addison-Wesley по адресу: http: www.awLcom/cp/mec++.html. Он также находится на FTP-сайте по адресу: ftp.awl.com в каталоге ср/тес++. Если у вас нет доступа в Internet, то для получения списка изменений пошлите запрос по одному из приведенных выше двух адресов, и я прослежу, чтобы список был вам выслан.

такая сокращенная запись может привести к недоразумению, я записываю полные имена объектов.



В настоящее время существует также список рассылки, подписаться на который можно, послав сообщение по адресу scott meyers-subscribe@egroups.com. Архив списка рассылки находится на странице http: www.egroups.com/messages/ scott meyers. Он предназначен для рассылки объявлений программистам, интересующимся языком С++. Объем рассылки небольшой, обычно не более двух сообщений в месяц. Более подробные сведения о списке рассылки можно пол5ить на странице http: www.aristeia.com,/MailingList/index.html.



1 2 [ 3 ] 4 5 6 ... 96

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