Справочное руководство по C++ - [53]
>#define идентификатор строка-лексем
>#define идентификатор ( идентификатор , … , идентификатор ) строка-лексем
>#include "имяфайла"
>#include ‹имяфайла›
>#line константа "имяфайла" >opt
>#undef идентификатор
>условное:
> часть-if части-elif >opt часть-else >opt строка-endif
>часть-if:
> строка-if текст
>строка-if:
> # if выражение-константа
> # ifdef идентификатор
> # ifndef идентификатор
>части-elif:
> строка-elif текст
> части-elif строка-elif текст
>строка-elif:
> # elif выражение-константа
>часть-else:
> строка-else текст
>строка-else:
> # else
>строка-endif:
> # endif
R.17.8 Шаблоны типа
>описание-шаблона-типа:
> template ‹ список-параметров-шаблона-типа › описание
>список-параметров-шаблона-типа:
> параметр-шаблона-типа
> список-параметров-шаблона-типа , параметр-шаблона-типа
>параметр-шаблона-типа:
> параметр-типа
> описание-параметра
>параметр-типа:
> class идентификатор
>имя-шаблонного-класса:
> имя-шаблона-типа ‹ список-парам-шаблона-типа ›
>список-парам-шаблона-типа:
> парам-шаблона-типа
> список-парам-шаблона-типа , парам-шаблона-типа
>парам-шаблона:
> выражение
> имя-типа
R.17.9 Обработка особых ситуаций
>проверяемый-блок:
> try составной-оператор список-обработчиков
>список-обработчиков:
> обработчик список-обработчиков >opt
>обработчик:
> catch ( описание-особой-ситуации ) составной-оператор
>описание-особой-ситуации:
> список-спецификаций-типа описатель
> список-спецификаций-типа абстрактный-описатель
> список-спецификаций-типа
> …
>выражение-запуска:
> throw выражение >opt
>спецификация-особой-ситуации:
> throw ( список-типа >opt )
>список-типа:
> имя-типа
> список-типа , имя-типа
R.18 Приложение B: Совместимость
Это приложение не относится к справочному руководству C++ и не является определением конструкций языка.
Язык C++ основывается на С (описание в книге Кернигана и Ритчи, 78 г., дальше K&R) и включает большинство изменений, предложенных в ANSI стандарте для С. При конвертировании программ на языках С++, K&R C и ANSI C могут возникнуть трудности в связи с различным вычислением в них выражений. Транслятор должен распознавать все различия между C++ и ANSI C. Программы на C++ и ANSI C должны иметь одинаковый смысл за исключением трех следующих случаев:
• В языке С выражение sizeof('a') равно sizeof(int), а в C++ оно равно sizeof(char).
• Если есть описание
>enum e { A };
то sizeof(A) равно в С sizeof(int), тогда как в C++ оно равно sizeof(e) и не обязано быть равно sizeof(int).
• Имя структуры, описанной во внутреннем блоке, может скрывать имя объекта, функции, элемента перечисления или типа из внешнего блока.
Приведем пример:
>int x[99];
>void f()
>{
> struct x { int a; };
> sizeof(x); /* для C это размер массива */
> /* а для C++ размер структуры */
>}
R.18.1 Расширения
В этом разделе перечисляются основные расширения языка С, введенные в С++.
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.
С++ – это универсальный язык программирования, задуманный так, чтобы сделать программирование более приятным для серьезного программиста. За исключением второстепенных деталей С++ является надмножеством языка программирования C. Помимо возможностей, которые дает C, С++ предоставляет гибкие и эффективные средства определения новых типов. Используя определения новых типов, точно отвечающих концепциям приложения, программист может разделять разрабатываемую программу на легко поддающиеся контролю части. Такой метод построения программ часто называют абстракцией данных.
В учебно-методическом пособии рассматриваются основы языка программирования PL/SQL, реализованного в системе управления базами данных Oracle Database Server. Приводятся сведения о поддерживаемых типах данных, структуре программ PL/SQL и выполнении SQL-предложений в них. Отдельно рассмотрено создание хранимых в базах данных Oracle программ PL/SQL – процедур, функций, пакетов и триггеров.
Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.
В книге рассматриваются базисные теоретические основы, необходимые для построения компиляторов, основные технологические приемы и методы их реализации. В ней приведены различные варианты заданий для выполнения лабораторного практикума по курсу «Системное программное обеспечение», а также примеры выполнения этих заданий. В каждом примере подробно рассматриваются все особенности его выполнения, как на этапе подготовки необходимой математической базы, так и на этапе программной реализации. В лабораторных работах автор обращает внимание на основные сложности, связанные с ее выполнением, а также на возможные типичные ошибки и недочеты, дает рекомендации по возможностям программной реализации, отличным от кода, приводимого в примерах.Книга ориентирована на студентов, обучающихся в технических вузах по специальностям, связанным с вычислительной техникой.
Книга известного специалиста по программированию (Югославия), содержащая основы языка Пролог и его приложения для решения задач искусственного интеллекта. Изложение отличается методическими достоинствами — книга написана в хорошем стиле, живым языком. Книга дополняет имеющуюся на русском языке литературу по языку Пролог.Для программистов разной квалификации, специалистов по искусственному интеллекту, для всех изучающих программирование.
РАССЫЛКА ЯВЛЯЕТСЯ ЧАСТЬЮ ПРОЕКТА RSDN, НА САЙТЕ КОТОРОГО ВСЕГДА МОЖНО НАЙТИ ВСЮ НЕОБХОДИМУЮ РАЗРАБОТЧИКУ ИНФОРМАЦИЮ, СТАТЬИ, ФОРУМЫ, РЕСУРСЫ, ПОЛНЫЙ АРХИВ ПРЕДЫДУЩИХ ВЫПУСКОВ РАССЫЛКИ И МНОГОЕ ДРУГОЕ.
В этой книге содержится описание базовых принципов функционирования платформы .NET, системы типов .NET и различных инструментальных средств разработки, используемых при создании приложений .NET. Представлены базовые возможности языка программирования C# 2005, включая новые синтаксические конструкции, появившиеся с выходом .NET 2.0, а также синтаксис и семантика языка CIL. В книге рассматривается формат сборок .NET, библиотеки базовых классов .NET. файловый ввод-вывод, возможности удаленного доступа, конструкция приложений Windows Forms, доступ к базам данных с помощью ADO.NET, создание Web-приложений ASP.NET и Web-служб XML.