Библиотека knigago >> Компьютеры: Языки и системы программирования >> C, C++, C# >> C++


В книге «Как найти работу своей мечты даже в кризис?» Оксана Крылова делится ценными практическими рекомендациями и пошаговыми инструкциями, которые помогут читателям осуществить свои карьерные мечты, несмотря на экономические трудности. Крылова начинает с того, что подчеркивает важность выявления своих ценностей, интересов и навыков. Она предоставляет упражнения и инструменты, которые позволяют читателям глубоко задуматься о том, что они хотят от своей карьеры. Затем Крылова переходит к...

СЛУЧАЙНАЯ КНИГА

Барьер Сантароги. Фрэнк Патрик Герберт
- Барьер Сантароги

Жанр: Научная Фантастика

Год издания: 1995

Серия: Англо-американская фантастика xx века

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

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

Жанр:

Современные российские издания, Литература ХXI века (эпоха Глобализации экономики), Программирование: прочее, C, C++, C#

Изадано в серии:

неизвестно

Издательство:

неизвестно

Год издания:

-

ISBN:

неизвестно

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

Краткое содержание книги "C++"

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

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

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

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

Читаем онлайн "C++". [Страница - 117]

составной_оператор выражение 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 старый_описатель_функции список_описателей тело_функции

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

список_параметров: идентификатор идентификатор , идентификатор

например,

max(a,b) (* return (a«b) ? b : a; *)

Если функция, описанная как эта, была ранее описана, тип ее параметра будет принят (...), то есть, непроверенный. Если она была описана, ее тип должен согласоваться с типом описния.

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

int cl.fct() (* /* ... */ *)

Одно и то же имя может быть описано одновременно и для класса или перечисления, и для объекта данных или функции в одной и той же области --">

Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.