C++ - Страустрап Бьярн, Хилл Мюррей
-
Название:C++
-
Автор:
-
Жанр:
-
Оригинал:Английский
-
Язык:Русский
-
Страниц:161
-
Рейтинг:
-
Ваша оценка:
Основным термином С++ является класс. Класс – это вид, который определяет сам пользователь. Классы обеспечивают анонимность данных, обеспеченную инициализацию информации, смутное преобразование видов для видов, определенных эксплуатантом, меняющееся задание вида, управляемые пользователем контроль над памятью и механизмы перезагрузки процессов. С++ предоставляет более качественные, чем в C, средства выражения модульного принципа программы и проверки видов. В языке также присутствуют апгрейды, не связанные напрямую с классами, включающие в себя символические постоянные, параметры функции по умолчанию, inline-подстановку функций, операции управления свободной памятью и ссылочный тип, перезагруженные имена функций. В С++ сохранены потенциалы языка C по работе с заглавными предметами машинного обеспечения (байты, биты, адреса, слова и т.п.). Это дает шанс весьма продуктивно воспроизводить виды, определяемые эксплуатантом.
С++ и его библиотеки установленные по умолчанию спроектированы так, чтобы гарантировать переносимость. Имеющееся на данный временной отрезок воспроизводство языка будет идти в большинстве систем, которые в состоянии поддерживать C. Из С++ программ возможно прибегать к пользованию C библиотеки, и с С++ возможно прибегать к пользованию большей части инструментальных средств, поддерживающих программирование на C.
Эта книга рассчитана в первую очередь для того, чтобы оказать помощь опытным программистам изучить язык и применять его в нестандартных проектах. В ней дано полное описание С++, множество фрагментов программ и примеров.
C++ - Страустрап Бьярн, Хилл Мюррей читать онлайн бесплатно полную версию книги
Описание функции 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() (* /* ... */ *)
Одно и то же имя может быть описано одновременно и для класса или перечисления, и для объекта данных или функции в одной и той же области видимости.