Бьярн Страустрап - Справочное руководство по C++

Тут можно читать онлайн Бьярн Страустрап - Справочное руководство по C++ - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Справочное руководство по C++
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    неизвестен
  • ISBN:
    нет данных
  • Рейтинг:
    5/5. Голосов: 81
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 100
    • 1
    • 2
    • 3
    • 4
    • 5

Бьярн Страустрап - Справочное руководство по C++ краткое содержание

Справочное руководство по C++ - описание и краткое содержание, автор Бьярн Страустрап, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Справочное руководство по C++ - читать онлайн бесплатно полную версию (весь текст целиком)

Справочное руководство по C++ - читать книгу онлайн бесплатно, автор Бьярн Страустрап
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

R.18.1.1 Возможности С++, введенные в 1985 г.

Здесь перечисляются возможности, добавленные к С, версией языка C++ 1985 г.

Можно указывать типы формальных параметров функции (§R.8.2.5), и они будут проверяться (§R.5.2.2). Будет происходить преобразование типа (§R.5.2.2). Это есть и в ANSI C.

В выражениях со значениями типа float вычисления могут проходить с обычной точностью (§R.3.6.1 и §R.4.3). Это есть и в ANSI C.

Можно перегружать имена функций; §R.13.

Можно перегружать операции; §R.13.4

Возможна реализация вызова функций подстановкой; §R.7.1.2.

Можно описывать объекты, представляющие данные, со спецификацией const; §R.7.1.6. Это есть и в ANSI C.

Можно описывать типы ссылки; §R.8.2.2 и §R.8.4.3.

Возможно управление свободной памятью с помощью операций new и delete; §R.5.3.3 и §R.5.3.4.

Введены классы, которые позволяют: скрывать информацию (§R.11), проводить инициализацию (§R.12.1), осуществлять пользовательские преобразования типа (§R.12.3) и работать с динамическими типами с помощью виртуальных функций (§R.10.2).

Имя класса или перечисления считается именем типа; §R.9.

Указатель на любой объект c типом, не являющимся const или volatile, можно присвоить указателю типа void*. Это есть и в ANSI C.

Указатель на функцию можно присваивать указателю типа void*; §R.4.6.

Описание внутри блока считается оператором; §R.6.7.

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

R.18.1.2 Возможности, добавленные в C++ после 1985 г.

Здесь перечисляются основные расширения C++ после 1985 г.:

Класс может иметь более одного прямого базового класса (множественное наследование); §R.10.1.

Члены класса могут быть защищенными; §R.11.

Операции new и delete можно описывать в классе и перегружать; §R.5.3.3, §R.5.3.4, §R.12.5. Это позволило определенный способ управления памятью для класса с помощью "присваивания указателю this" отнести в раздел анахронизмов; §R.18.3.3.

Можно явно уничтожать объекты; §R.12.4.

Присваивания и инициализация для класса определены как присваивание и инициализация по членам; §R.12.8.

Служебное слово overload стало излишним и отнесено к разделу анахронизмов; §R.18.3.

Произвольные выражения разрешены в качестве инициализаторов статических объектов; §R.8.4.

Объекты, представляющие данные, могут быть volatile; §R.7.1.6. Также и в ANSI C.

Допустимы инициализаторы для статических членов класса; §R.9.4.

Функции-члены могут быть статическими; §R.9.4.

Функции-члены могут быть const или volatile; §R.9.3.1.

Можно явно указать связывание с подпрограммами на других языках; §R.7.4.

Можно перегружать операции -›, -›* и `; §R.13.4.

Классы могут быть абстрактными; §R.10.3.

Для пользовательских типов префиксные и постфиксные операции различаются.

Шаблоны типов; §R.14.

Управление особыми ситуациями; §R.15.

R.18.2 C++ и ANSI C

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

Любая программа на ANSI C, использующая в качестве идентификаторов следующие служебные слова С++, не является программой на С++; §R.2.4:

asm catch class delete friend

inline new operator private protected

public template try this virtual

throw

Хотя это считается устаревшем в ANSI C, реализация С может налагать драконовские ограничения на длину идентификаторов; в реализациях C++ это недопустимо; §R.2.3.

В C++ функция должна быть описана прежде, чем ее можно вызвать; §R.5.2.2.

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

В ANSI C можно несколько раз описать без спецификации extern глобальный объект данных, в C++ возможно только одно его определение; §R.3.3

В C++ класс не может иметь тоже имя, что и имя typedef, относящееся в той же области видимости к другому типу; §R.9.1.

В ANSI C операнд типа void* можно использовать в правой части присваивания, а также при инициализации переменной типа указателя на произвольный тип; в C++ это невозможно §R.7.1.6.

В ANSI C возможны команды переходов, обходящие инициализацию; в C++ это невозможно.

В ANSI C по умолчанию глобальный объект типа const подлежит внешнему связыванию; для C++ это не так; §R.3.3.

Определения функций в "старом" стиле и вызовы неописанных функций считаются в C++ анахронизмами, которые не обязательно должны поддерживаться любой реализацией; §R.18.3.1. В ANSI C они просто считаются устаревшими.

В C++ структура (struct) образует область видимости (§R.3.2); В ANSI C структура, перечисление или элемент перечисления, описанные в структуре поднимаются в область видимости самой структуры.

Присваивание объекту типа перечисления значения, не принадлежащего перечислению, считается в C++ анахронизмом и не должно поддерживаться во всех реализациях; §R.7.2. В ANSI C рекомендуется для таких присваиваний выдавать предупреждение.

Строки, инициализирующие символьные массивы, не могут быть длиннее этих массивов; §R.8.4.2.

Тип символьной константы в C++ есть char (§R.2.5.2) и int в ANSI C.

Тип элемента перечисления есть тип этого перечисления в C++ (§R.7.2) и тип int в ANSI C.

Кроме того, стандарт ANSI для С допускает значительные различия в допустимых реализациях языка, что может привести к еще большим расхождениям между реализациями C++ и С. В частности, в некоторых реализациях С могут быть допустимы некоторые несовместимые описания. В C++ требуется совместимость даже для разных единиц трансляции; §R.3.3.

R.18.2.1 Как бороться с расхождениями

В общем случае программа на C++ использует многие возможности, отсутствующие в ANSI C. Для такой программы незначительные расхождения, перечисленные в §R.18.2, явно перекрываются расширениями в С++. Когда C++ и ANSI C должны иметь общие заголовочные файлы, нужно позаботиться, чтобы эти файлы представляли текст на общем подмножестве этих языков.

Нельзя пользоваться специфическими возможностями C++ такими, как классы, перегрузка и т.п.

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

Функцию без параметров следует описывать как f(void), а не просто f().

Глобальные объекты типа const следует явно специфицировать как static или extern.

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

Интервал:

Закладка:

Сделать


Бьярн Страустрап читать все книги автора по порядку

Бьярн Страустрап - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Справочное руководство по C++ отзывы


Отзывы читателей о книге Справочное руководство по C++, автор: Бьярн Страустрап. Читайте комментарии и мнения людей о произведении.


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

Напишите свой комментарий
x