C++ - Страустрап Бьярн, Хилл Мюррей

C++
С++ – это многофункциональный язык программирования, по изначально задуманный так, чтобы сделать программирование более простым для опытного программиста. Если не брать в рассчет дополнительных деталей С++ является надмножеством программного языка C. Не считая возможностей, которые предоставляет C, С++ предоставляет гибкие и производительные инструменты определения новых типов. Используя формулировки новых типов, конкретно отвечающих положениям приложения, программист имеет возможность делить разрабатываемую программу на проще поддающиеся управлению части. Такой способ написания программ часто называют обобщением данных. Данные о типах содержится в некоторых предметах типов, сформулированных пользователем. Такие предметы надежны и просты в использовании в тех условиях, когда их вид не представляется вохможным установить на стадии составлении. Программирование с использованием таких предметов часто называют ориентированно-объектным. При должном использовании этот метод дает более краткие, проще усваиваемые и более легко управляемые программы.
Основным термином С++ является класс. Класс – это вид, который определяет сам пользователь. Классы обеспечивают анонимность данных, обеспеченную инициализацию информации, смутное преобразование видов для видов, определенных эксплуатантом, меняющееся задание вида, управляемые пользователем контроль над памятью и механизмы перезагрузки процессов. С++ предоставляет более качественные, чем в C, средства выражения модульного принципа программы и проверки видов. В языке также присутствуют апгрейды, не связанные напрямую с классами, включающие в себя символические постоянные, параметры функции по умолчанию, inline-подстановку функций, операции управления свободной памятью и ссылочный тип, перезагруженные имена функций. В С++ сохранены потенциалы языка C по работе с заглавными предметами машинного обеспечения (байты, биты, адреса, слова и т.п.). Это дает шанс весьма продуктивно воспроизводить виды, определяемые эксплуатантом.
С++ и его библиотеки установленные по умолчанию спроектированы так, чтобы гарантировать переносимость. Имеющееся на данный временной отрезок воспроизводство языка будет идти в большинстве систем, которые в состоянии поддерживать C. Из С++ программ возможно прибегать к пользованию C библиотеки, и с С++ возможно прибегать к пользованию большей части инструментальных средств, поддерживающих программирование на C.
Эта книга рассчитана в первую очередь для того, чтобы оказать помощь опытным программистам изучить язык и применять его в нестандартных проектах. В ней дано полное описание С++, множество фрагментов программ и примеров.

C++ - Страустрап Бьярн, Хилл Мюррей читать онлайн бесплатно полную версию книги

В описании может быть задан максимум один sc_спецификтор. Если в описании отсутсвует спецификатор_класса_памяти, то класс памяти принимается автоматическим внутри функции и статическим вне. Исключение: функции не могут быть автоматческими.

Спецификаторы static и extern могут использоваться толко для имен объектов и функций.

Некоторые спецификаторы могут использоваться только в описаниях функций:

спецификатор_функции: overload inline virtual

Спецификатор перегрузки overload делает возможным ипользование одного имени для обозначения нескольких функций, см. #8.9.

Спецификатор inline является только подсказкой компилтору, не влияет на смысл программы и может быть проигнорирван. Он используется, чтобы указать на то, что при вызове функции inline-подстановка тела функции предпочтительнее обычной реализацци вызова функции. Функция (#8.5.2 и #8.5.10), определенная внутри описания класса, является inline по умолчанию.

Спецификатор virtual может использоваться только в опсаниях членов класса, см. #8.5.4.

Спецификатор friend используется для отмены правил сорытия имени для членов класса и может использоваться только внутри описаний классов, см. #8.5.9.

С помощью спецификатора typedef вводится имя для типа, см. #8.8.

8.2 Спецификаторы типа

Спецификаторами типов (спецификатор_типа) являются:

спецификатор_типа:

простое_имя_типа спецификатор_класса enum-спецификатор сложный_спецификатор_типа const

Слово const можно добавлять к любому допустимому спецфикатору_типа. В остальных случаях в описании может быть дано не более одного спецификатора_типа. Объект типа const не яляется lvalue. Если в описании опущен спецификатор типа, он принимается int.

простое_имя_типа: char short int long unsigned float double const void

Слова long, short и unsigned можно рассматривать как прилагательные. Они могут применяться к типу int; unsigned может также применяться к типам char, short и long.

Спецификаторы класса и перечисления обсуждаются в #8.5 и #8.10 соответственно.

сложный_спецификатор_типа: ключ typedef-имя ключ идентификатор

ключ: class struct union enum

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

class x (* ... *);

void f(int x) (* class x a; // ... *)

Если имя класса или перечисления ранее описано не было, сложный_спецификатор_типа работает как описание_имени, см. #8.8.

8.3 Описатели

Список_описателей, появляющийся в описании, есть раздленная запятыми последовательность описателей, каждый из кторых может иметь инициализатор.

список_описателей: иниц_описатель иниц_описатель , список_описателей

иниц_описатель:

описатель инициализатор opt

Инициализаторы обсуждаются в #8.6. Спецификатор в описнии указывает тип и класс памяти объектов, к которым относятся описатели. Описатели имеют синтаксис:

описатель: оп_имя ( описатель ) * const opt описатель amp; const opt описатель описатель ( список_описаний_параметров ) описатель [ константное_выражение opt ]

оп-имя: простое_оп_имя typedef-имя :: простое_оп_имя

простое_оп_имя: идентификатор typedef-имя ~ typedef-имя имя_функции_операции имя_функции_преобразования

Группировка та же, что и в выражениях.

8.4 Смысл описателей

Перейти
Наш сайт автоматически запоминает страницу, где вы остановились, вы можете продолжить чтение в любой момент
Оставить комментарий