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

Здесь есть возможность читать онлайн «Мюррей Хилл - C++» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

C++: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «C++»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

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

C++ — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «C++», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Унарные операции и операции присваивания правоассоцитивны, все остальные левоассоциативны. Это значит, что a=b=c означает a=(b=c), a+b+c означает (a+b)+c, и *p++ означает *(p ++), а не (*p)++.

Сводка Операций (часть 1) =========================================================== :: разрешение области видимости имя_класса :: член :: глобальное :: имя =========================================================== -» выбор члена указатель-»член [] индексация указатель [ выр ] () вызов функции выр (список_выр) () построение значения тип (список_выр) sizeof размер объекта sizeof выр sizeof размер типа sizeof ( тип ) =========================================================== ++ приращение после lvalue++ ++ приращение до ++lvalue – уменьшение после lvalue– – уменьшение до –lvalue ~ дополнение ~ выр ! не ! выр – унарный минус – выр + унарный плюс + выр amp; адрес объекта amp; lvalue * разыменование * выр new создание (размещение) new тип delete уничтожение (освобождение) delete указатель delete[] уничтожение вектора delete[ выр ] указатель () приведение (преобразование типа) ( тип ) выр =========================================================== * умножение выр * выр / деление выр / выр % взятие по модулю (остаток) выр % выр =========================================================== + сложение (плюс) выр + выр – вычитание (минус) выр – выр =========================================================== «„ сдвиг влево lvalue „„ выр ““ сдвиг вправо lvalue “» выр =========================================================== « меньше выр « выр

«= меньше или равно выр „= выр “ больше выр » выр »= больше или равно выр »= выр =========================================================== == равно выр == выр != не равно выр != выр =========================================================== amp; побитовое И выр amp; выр =========================================================== ^ побитовое исключающее ИЛИ выр ^ выр =========================================================== ! побитовое включающее ИЛИ выр ! выр =========================================================== amp; amp; логическое И выр amp; amp; выр =========================================================== !! логическое включающее ИЛИ выр !! выр =========================================================== ? : арифметический if выр ? выр : выр =========================================================== = простое присваивание lvalue = выр *= умножить и присвоить lvalue = выр /= разделить и присвоить lvalue /= выр %= взять по модулю и присвоить lvalue %= выр += сложить и присвоить lvalue += выр -= вычесть и присвоить lvalue -= выр «„= сдвинуть влево и присвоить lvalue „„= выр ““= сдвинуть вправо и присвоить lvalue “»= выр amp;= И и присвоить lvalue amp;= выр != включающее ИЛИ и присвоить lvalue != выр ^= исключающее ИЛИ и присвоить lvalue ^= выр =========================================================== , запятая (следование) выр , выр ===========================================================

В каждой очерченной части находятся операции с одинаквым приоритетом. Операция имеет приоритет больше, чем оперции из частей, расположенных ниже. Например: a+b*c означает a +(b*c), так как * имеет приоритет выше, чем +, а a+b-c ознчает (a+b)-c, поскольку + и – имеют одинаковый приоритет (и поскольку + левоассоциативен).

3.2.1 Круглые скобки

Скобками синтаксис С++ злоупотребляет; количество спосбов их использования приводит в замешательство: они применются для заключения в них параметров в вызовах функций, в них заключается тип в преобразовании типа (приведении к типу), в именах типов для обозначения функций, а также для разрешения конфликтов приоритетов. К счастью, последнее требуется не слишком часто, потому что уровни приоритета и правила ассоцативности определены таким образом, чтобы выражения «работали ожидаемым образом» (то есть, отражали наиболее привычный спсоб употребления). Например, значение

if (i«=0 !! max«i) // ...

очевидно. Тем не менее, всегда, когда программист сомнвается относительно этих правил, следует употреблять скобки, и некоторые программисты предпочитают немного более длинное и менее элегантное

if ( (i«=0) !! (max«i) ) // ...

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

if (i amp;mask == 0) // ...

не происходит применения маски mask к i и последующей проверки результата на ноль. Поскольку == имеет приоритет вше, чем amp;, выражение интерпретируется как i amp;(mask==0). В этом случае скобки оказываются важны:

if ((i amp;mask) == 0) // ...

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

if (0 «= a «= 99) // ...

Оно допустимо, но интерпретируется оно как (0«=a)«=99, где результат первого подвыражения или 0 или 1, но не a (если только a не равно 1). Чтобы проверить, лежит ли a в диапазоне 0...99, можно написать

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

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

Представляем Вашему вниманию похожие книги на «C++» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «C++»

Обсуждение, отзывы о книге «C++» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x