» » » Мюррей Хилл - C++


Авторские права

Мюррей Хилл - C++

Здесь можно скачать бесплатно "Мюррей Хилл - C++" в формате fb2, epub, txt, doc, pdf. Жанр: Программирование. Так же Вы можете читать книгу онлайн без регистрации и SMS на сайте LibFox.Ru (ЛибФокс) или прочесть описание и ознакомиться с отзывами.
Рейтинг:
Название:
C++
Автор:
Издательство:
неизвестно
Год:
неизвестен
ISBN:
нет данных
Скачать:

99Пожалуйста дождитесь своей очереди, идёт подготовка вашей ссылки для скачивания...

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.

Вы автор?
Жалоба
Все книги на сайте размещаются его пользователями. Приносим свои глубочайшие извинения, если Ваша книга была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.

Как получить книгу?
Оплатили, но не знаете что делать дальше? Инструкция.

Описание книги "C++"

Описание и краткое содержание "C++" читать бесплатно онлайн.



С++ – это универсальный язык программирования, задуманный так, чтобы сделать программирование более приятным для серьезного программиста. За исключением второстепенных деталей С++ является надмножеством языка программирования C. Помимо возможностей, которые дает C, С++ предоставляет гибкие и эффективные средства определения новых типов. Используя определения новых типов, точно отвечающих концепциям приложения, программист может разделять разрабатываемую программу на легко поддающиеся контролю части. Такой метод построения программ часто называют абстракцией данных. Информация о типах содержится в некоторых объектах типов, определенных пользователем. Такие объекты просты и надежны в использовании в тех ситуациях, когда их тип нельзя установить на стадии компиляции. Программирование с применением таких объектов часто называют объектно-ориентированным. При правильном использовании этот метод дает более короткие, проще понимаемые и легче контролируемые программы.

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

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

Эта книга предназначена главным образом для того, чтобы помочь серьезным программистам изучить язык и применять его в нетривиальных проектах. В ней дано полное описание С++, много примеров и еще больше фрагментов программ.






Число регистровых переменных, которые фактически могут быть помещены в регистры, различается от машины к машине, как и множество дейсвующих типов. Тем не менее, все компиляторы на «своей» машине все делают правильно; избыточные или ндействующие описания register игнорируются.

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

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

14. Краткое Изложение Синтаксиса

Эта краткая сводка синтаксиса С++ предназначается, чтобы способствовать пониманию. Она не является точной формулирокой языка.

14.1 Выражения

выражение: терм выражение бинарная_операция выражение выражение ? выражение : выражение список_выражений

список_выражений: выражение список_выражений , выражение

терм: первичное_выражение унарная_операция терм терм ++ терм – sizeof выражение sizeof ( имя_типа ) ( имя_типа) выражение простое_имя_типа ( список_выражений ) new имя_типа инициализатор opt new ( имя_типа ) delete выражение delete [ выражение ] выражение

первичное_выражение: id :: идентификатор константа строка this ( выражение ) первичное_выражение[ выражение ] первичное_выражение ( список_выражений opt ) первичное_выражение.id первичное_выражение-»id

id: идентификатор typedef-имя :: идентификатор typedef-имя :: имя_функции_операции

операция: унарная_операция бинарная_операция специальная_операция операция_свободной_памяти

Бинарные операции имеют приоритет, убывающий в указанном порядке:

бинарная_операция: одна из * / % + – «„ “» « »

== != amp; ^ ! amp; amp; !! операция_присваивания

операция_присваивания: одна из = += -= *= /= %= ^= amp;= != »»= ««=

унарная_операция: одна из * amp; + – ~ ! ++ –

специальная_операция: одна из () []

операция_свободной_памяти: одна из new delete

имя_типа: спецификаторы_описания абстрактный_описатель

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

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


typedef-имя: идентификатор

14.2 Описания

описание: спецификаторы_описания opt список_описателей opt ; описание_имени asm-описание

описание_имени: сост идентификатор ; enum идентификатор ;

сост:

class struct union

asm-описание: asm ( строка ) ;

спецификаторы_описания: спецификатор_описания спецификаторы_описания opt

спецификатор_описания: спецификатор_класса_памяти спецификатор_типа спецификатор_функции typedef friend

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

спецификатор_класса_памяти: auto extern register static

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

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

ключ: class struct union enum

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

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

описатель: оп_имя ( описатель ) * const opt описатель amp; const opt описатель

описатель ( список_описаний_параметров ) описатель [ константное_выражение opt ]

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

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

имя_функции_операции: operator операция

имя_функции_преобразования operator тип

список_описаний_параметров: список_описаний_прм opt ... opt

список_описаний_прм: список_описаний_прм , описание_параметра описание_параметра

описание_параметра: спецификаторы_описания описатель = выражение спецификаторы_описания описатель = константное_выражение спецификаторы_описания абстракт_описатель = выражение спецификаторы_описания абстракт_описатель = выражение

спецификатор_класса: заголовок_класса (* список_членов opt *) заголовок_класса (* список_членов opt public : список_членов opt *)

заголовок_класса: сост идентификатор opt сост идентификатор opt : public opt typedef-имя

список_членов: описание_члена список_членов opt

описание_члена: спецификаторы_описания opt описатель_члена инициализатор opt ; определение_функции opt

описатель_члена: описатель идентификатор opt : константное_выражение

инициализатор: = выражение = (* список_инициализаторов *) = (* список_инициализаторов , *) ( список_выражений )


список_инициализаторов: выражение список_инициализаторов , список_инициализаторов (* список_инициализаторов *)

спецификатор_enum: enum идентификатор opt (* enum-список *)

enum-список: перечислитель enum-список , перечислитель

перечислитель: идентификатор идентификатор = константное_выражение

14.3 Операторы

составной_оператор: (* список_операторов opt *)

список_операторов: оператор оператор список_операторов

оператор: описание составной_оператор выражение opt ; if ( выражение ) оператор if ( выражение ) оператор else оператор while ( выражение ) оператор do оператор while ( выражение ) ; for ( оператор выражение opt ; выражение opt ) оператор switch ( выражение ) оператор case константное_выражение : оператор default : оператор break ; continue ; return выражение opt ; goto идентификатор ; идентификатор : оператор

14.4 Внешние определения

программа: внешнее_определение внешнее_определение программа

внешнее_определение: определение_функции описание

определение_функции: спецификаторы_описания opt описатель_функции инициализатор_базового opt тело_функции


описатель_функции: описатель ( список_описаний_параметров )

тело_функции: составной_оператор

инициализатор_базового: : ( список_инициализаторов_членов opt )

14.5 Препроцессор

#define идентификатор строка_лексем

#define идентификатор( идентификатор,...,идентификатор ) строка лексем #else #endif #if выражение #ifdef идентификатор #ifndef идентификатор #include «имя_файла» #include «имя_файла» #line константа «имя_файла» #undef идентификатор

15. Отличия от C


15.1 Расширения

Типы параметров функции могут быть заданы (#8.4) и будут проверяться (#7.1). Могут выполняться преобразования типов (# 7.1).

Для выражений с числами с плавающей точкой может исползоваться плавающая арифметика одинарной точности; #6.2.

Имена функций могут быть перегружены; #8.9.

Операции могут быть перегружены; 7.16, #8.5.11.

Функции могут быть inline-подставляемыми; #8.1.

Объекты данных могут быть константными (const); #8.3.

Могут быть описаны объекты ссылочного типа; #8.4, #8.6.3

Операции new и delete обеспечивают свободное хранение в памяти, #7.2.

Классы могут обеспечивать сокрытие данных (#8.5.9), грантированную инициализацию (#8.6.2), определяемые пользовтелем преобразвания (#8.5.6), и динамическое типизирование через использование виртуальных функций (#8.5.4).

Имя класса или перечисления является именем типа; #8.5.


Любой указатель может присваиваться void* без применеия приведения к типу; #7.14.

Описание внутри блока является оператором; #9.14.

Можно описывать безымянные объединения; #8.5.13.

15.2 Сводка Несовместимостей

Большинство конструкций C допустимы в С++ без изменения их смысла. Исключения из этого следующие:

Программы, использующие одно из новых ключевых слов

class const delete friend inline new operator overload public signed this virtual volatile

как идентификаторы, недопустимы.

Описание функции f(); означает, что f не получает парметров, в C же это значит, что f может получать параметр свершенно любого типа.

В C внешнее имя может определяться несколько раз, а в С+ + оно должно быть определено ровно один раз.

Имена классов в С++ находятся в том же пространстве, что и прочие имена, поэтому конструкции вроде

int s; struct s (* /* ... */ *); f() (* s = 1; *)

использоваться не могут. Однако, для разрешения болшинства конфликтов может применяться явное использование class, struct, union, enum (#8.2) или :: (#7.1). Например:

int s; struct s (* /* ... */ *); void f() (*int s; struct s a; *) void g() (* ::s = 1; *)

15.3 Анахронизмы

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

Прежнее неопределенное имя может использоваться как имя функции в вызове. В этом случае имя будет неявно описано как

функция, возвращающая int с типом параметра (...).

Ключевое слово void может использоваться для указания того, что функция не получает параметров, так что (void) эвивалентно ().

Могут использоваться программы, в которых используется синтаксис определения функций в C

старое_определение_функции: спецификаторы_описания opt старый_описатель_функции список_описателей тело_функции


На Facebook В Твиттере В Instagram В Одноклассниках Мы Вконтакте
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!

Похожие книги на "C++"

Книги похожие на "C++" читать онлайн или скачать бесплатно полные версии.


Понравилась книга? Оставьте Ваш комментарий, поделитесь впечатлениями или расскажите друзьям

Все книги автора Мюррей Хилл

Мюррей Хилл - все книги автора в одном месте на сайте онлайн библиотеки LibFox.

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Отзывы о "Мюррей Хилл - C++"

Отзывы читателей о книге "C++", комментарии и мнения людей о произведении.

А что Вы думаете о книге? Оставьте Ваш отзыв.