Бьeрн Страустрап. Справочное руководство по C++
страница №7
...10.3.Для пользовательских типов префиксные и постфиксные операции
различаются.
Шаблоны типов; $$R.14.
Управление особыми ситуациями; $$R.15.
R.18.2 С++ и ANSI 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, реализация С может налагать
драконовские ограничения на длину идентификаторов; в реализациях С++
это недопустимо; $$R.2.3.
В С++ функция должна быть описана прежде, чем ее можно вызвать;
$$R.5.2.2.
Описание f(); в С++ означает, что функция f не имеет параметров
($$R.8.2.5), а в С это означает, что f может иметь любое число
параметров любого типа. Такое описание считается устаревшим в ANSI C.
В ANSI C можно несколько раз описать без спецификации extern глобальный
объект данных, в С++ возможно только одно его определение; $$R.3.3
В С++ класс не может иметь тоже имя, что и имя typedef, относящееся
в той же области видимости к другому типу; $$R.9.1.
В ANSI C операнд типа void* можно использовать в правой части
присваивания, а также при инициализации переменной типа указателя на
произвольный тип; в С++ это невозможно $$R.7.1.6.
В ANSI C возможны команды переходов, обходящие инициализацию;
в С++ это невозможно.
В ANSI C по умолчанию глобальный объект типа const подлежит
внешнему связыванию; для С++ это не так; $$R.3.3.
Определения функций в "старом" стиле и вызовы неописанных функций
считаются в С++ анахронизмами, которые не обязательно должны
поддерживаться любой реализацией; $$R.18.3.1. В ANSI C они просто
считаются устаревшими.
В С++ структура (struct) образует область видимости ($$R.3.2);
В ANSI C структура, перечисление или элемент перечисления,
описанные в структуре поднимаются в область видимости самой
структуры.
Присваивание объекту типа перечисления значения, не принадлежащего
перечислению, считается в С++ анахронизмом и не должно поддерживаться
во всех реализациях; $$R.7.2. В ANSI C рекомендуется для таких
присваиваний выдавать предупреждение.
Строки, инициализирующие символьные массивы, не могут быть длиннее
этих массивов; $$R.8.4.2.
Тип символьной константы в С++ есть char ($$R.2.5.2) и int в
ANSI C.
Тип элемента перечисления есть тип этого перечисления в С++ ($$R.7.2)
и тип int в ANSI C.
Кроме того, стандарт ANSI для С допускает значительные различия в
допустимых реализациях языка, что может привести к еще большим расхождениям
между реализациями С++ и С. В частности, в некоторых реализациях С
могут быть допустимы некоторые несовместимые описания. В С++ требуется
совместимость даже для разных единиц трансляции; $$R.3.3.
R.18.2.1 Как бороться с расхождениями
В общем случае программа на С++ использует многие возможности,
отсутствующие в ANSI C. Для такой программы незначительные расхождения,
перечисленные в $$R.18.2, явно перекрываются расширениями в С++. Когда
С++ и ANSI C должны иметь общие заголовочные файлы, нужно позаботиться,
чтобы эти файлы представляли текст на общем подмножестве этих языков.
Нельзя пользоваться специфическими возможностями С++ такими, как
классы, перегрузка и т.п.
Нельзя использовать одно имя для обозначения типа структуры и другого
типа.
Функцию без параметров следует описывать как f(void), а не просто f().
Глобальные объекты типа const следует явно специфицировать как static
или extern.
Для разделения частей программы на ANSI C и С++ можно использовать
условную трансляцию с предописанным именем __cplusplus.
Функции, которые могут вызываться из программ на обеих языках, должны
быть явно описаны, как функции, подлежащие связыванию с С.
R.18.3 Анахронизм
Реализация С++ может включать перечисленные здесь расширения, чтобы
облегчить использование программы на С, или чтобы упростить переход
с более ранних версий С++. Отметим, что с каждым расширением связаны
нежелательные последствия. Если реализация предоставляет такое расширение,
то она должно также предоставлять возможность убедиться в отсутствии
этих последствий для исходной программы. Реализация С++ не обязана
обеспечивать эти расширения.
При описании или определении функции можно использовать слово overload
в конструкции спецификация-описания ($$R.7). Если оно используется в
спецификации-описания, то считается служебным словом и его нельзя
использовать как идентификатор.
Определение статического члена класса, представляющего данные,
для которого дана стандартная инициализация нулями ($$R.8.4, $$R.9.4),
может быть опущено.
Можно использовать команды препроцессора старого стиля (до ANSI C).
Можно присваивать объекту типа перечисления значение типа int.
При удалении массива, тип которого не имеет деструктора, можно
указывать число элементов; $$R.5.3.4.
Одна функция operator++() может использоваться для перегрузки как
префиксных, так и постфиксных операций ++; тоже верно для операции --;
$$R.13.4.6.
R.18.3.1 Определения функций старого стиля
Можно использовать синтаксис С для определений функций:
старое-определение-функции:
спецификации-описаний opt старый-описатель-функции
список-описаний opt тело-функции
старый-описатель-функции:
описатель ( список-параметров opt )
список-параметров:
идентификатор
список-параметров , идентификатор
Приведем пример:
max(a,b) int b; { return (a<b) ? b : a; }
Если определенная таким образом функция не была описана ранее, то тип
ее формальных параметров полагается (...), т.е. он не будет проверяться.
Если она была описана, то тип должен согласовываться с типом,
указанным в описании.
Приведенный синтаксис нельзя использовать для определения функций-членов.
R.18.3.2 Старый стиль задания инициализатора базового класса
В конструкции инициализатор-памяти ($$R.12.6.2) можно не указывать
имя-класса, обозначающее базовый класс при условии, что существует
только один прямой (непосредственный) базовый класс. Поэтому в
описании
class B {
// ...
public:
B(int);
};
class D : public B {
// ...
D(int i) : (i) { /* ... */ }
};
будет вызываться конструктор B с параметром i.
R.18.3.3 Присваивание указателю this
Присваивая определенные значения указателю this, пользователь мог
управлять выделением памяти для объекта некоторого класса. В
конструкторе до использования членов класса можно было с помощью
такого присваивания реализовать свой алгоритм выделения памяти.
Присваивая в деструкторе указателю this нуль, можно было
обойти стандартную операцию освобождения объектов класса. Кроме
того, присваивание нуля в деструкторе отменяло неявные вызовы
деструкторов для членов и базовых классов, например:
class Z {
int z[10];
Z() { this = my_allocator(sizeof(Z) ); }
~Z() { my_deallocator (this); this = 0; }
};
Если выделение памяти уже произошло (как бывает для членов и
объектов auto или static), то при входе в конструктор this имеет
ненулевое значение и значение нуль в противном случае.
Вызовы конструкторов для членов и базовых классов произойдут
только после того, как this получил значение. Если в конструкторе
базового класса есть присваивание this, то новое значение this
будет использоваться и в конструкторах производных классов, если
они есть.
Отметим, что при наличии указанного анахронизма или тип указателя
this не может быть *const, или нужно делать исключение для this из
правила о присваивании указателям со спецификацией const.
R.18.3.4 Приведение указателей на функцию-член
Указатель на функцию-член некоторого объекта можно привести к
указателю на какую-то другую функцию, например (int (*) ())p->f.
Результирующий указатель будет настроен на функцию, вызов которой
будет происходить с помощью обращения к этой функции-члену для
того же объекта. Как обычно результат такого вызова считается
неопределенным.
R.18.3.5 Невложенность классов
Если класс описан внутри другого класса и в программе больше не
описано классов с этим именем, то его можно использовать, как
если бы он был описан вне класса (так обстоит дело с описанием
struct в С), например:
struct S {
struct T {
int a;
};
int b;
};
struct T x; // означает `S::T x;'
Список служебных слов
auto автоматический
break разрыв
case вариант
catch перехватить
char символ
class класс
const конст
continue продолжить
default по умолчанию
delete удалить
do делать
double двойной
else иначе
enum перечисление
extern внешний
float плавающий
for для
friend друг
goto переход на
if если
inline подстановка
int целый
long длинный
new новый
operator оператор
private частный
protected защищенный
public общий
register регистровый
return возврат
short короткий
signed знаковый
sizeof размер
static статический
struct структура
switch переключатель
template шаблон типа
this текущий
throw запустить
try проверить
typedef тип
union объединение
unsigned беззнаковый
virtual виртуальный
void пустой
volatile изменяемый
while пока
УКАЗАТЕЛЬ
А
абстрактный
абстрактный класс
абстрактный описатель
абстрактный тип данных (АТД)
абстракция
абстракция данных
абстракция данных или наследование
автоматические
агрегат
Ада
аддитивные операции
адрес
адрес битового поля
адрес и присваивание
адрес конструктора
Алгол68
американский национальный институт стандартов (ANSI)
анахронизм
анализатор рекурсивного спуска
арифметика беззнакового
арифметика фиксированной точности
арифметическая особая ситуация
арифметические операции с указателем
арифметические преобразования
арифметический тип
ассемблер
асинхронные события
ассоциативность операций
ассоциативный массив
ассоциативность операций
Б
базовый
базовый класс
безымянное объединение
беззнаковая арифметика
беззнаковая константа
беззнаковый тип
библиотека
библиотека заголовочных файлов
битовое поле
блок
блокирование (замок)
буферизация ввода-вывода
В
ввод встроенных типов
ввод и вывод
ввод пользовательских типов
ввод-вывод
виртуальный базовый класс
виртуальный деструктор
виртуальный конструктор
виртуальная функция
включаемый файл
включение исходного файла
внешнее связывание
внутреннее связывание
внутренняя структура
вложенный класс
возврат каретки
возвращаемое функцией значение
восьмеричная константа
восьмеричное число
время жизни объекта
встроенный
встроенная операция
встроенный (основной) тип
выбор члена класса
вывод встроенных типов
вывод пользовательских типов
выделение пробелами
вызов
вызов виртуальной функции
вызов деструктора
вызов операторной функции
вызов по значению
вызов по ссылке
вызов функции
выравнивание
выравнивание битового поля
выравнивание класса
выравнивание члена класса
выражение
выражение-запуска
выражение константа
выражение-константа
выражение-отношения
выражение присваивания
выражение-приведения
выражение-присваивания
выражение-сдвига
выражение-размещения
вычисление стандартного параметра
вычитание указателей
Г
гибридный проект
глобальная область видимости
глобальная область видимости
глобальное безымянное объединение
глобальное имя
глобальное имя
глобальные данные
глобальные объекты
глубокое копирование
горизонтальная табуляция \t
группирование особых ситуаций
Д
данные
двойная кавычка
десятичная константа
деструктор
деструктор временного объекта
деструктор локального объекта
деструктор объединения
деструктор производного класса
динамическая инициализация
динамическая информация о типе
динамический контроль типов
динамическая ошибка
длина имени
доступ
доступ к базовому классу
доступ к виртуальной функции
доступ к защищенному члену
доступ к имени члена
доступ к члену базового класса
доступ к члену класса
дружественный класс
дружественная функция
доступ к виртуальной функции
Е
единица трансляции
З
завершение программы
заголовочный файл
загрузчик
закрытие потока
запрос ресурса
запуск особой ситуации
запуск программы
зарезервированный идентификатор
защищенный член
знаковый тип
И
идентификатор
иерархия классов
иерархия особых ситуаций
иерархия объектов
изменяемый адрес
имя
имя класса
имя-класса
имя перегруженного члена
имя перегруженной функции
имя-простого-типа
имя-шаблонного-класса
имя-функции-преобразования
инициализатор
инициализация
инициализация автоматических
инициализация базового класса
инициализация библиотеки
инициализация и присваивание
инициализация массива
инициализация массива объектов класса
инициализация массива символов
инициализация объединения
инициализация объекта класса
инициализация объекта-члена
инициализация регистра
инициализации ссылки
инициализация структуры
инициализация члена
инициализация члена класса
инкапсуляция
интерфейс
интерфейс класса
интерфейсный класс
исходный файл
исчерпание свободной памяти
исчерпание ресурса
исчерпание свободной памяти
итерация
К
каркас области приложения
класс
класс и тип
класс или объединение
класс или структура
класс особой ситуации
класс памяти auto
Кобол
комментарий
конец строки \n
конкатенация строк
конкретный тип
конкретный тип данных (КТД)
константа
константа double
константа float
константа long
константа long double
константа unsigned
константа перечисления
константа пользовательского типа
константа с плавающей точкой
константа строка
конструктор
конструктор временного объекта
конструктор глобальной переменной
конструктор и абстрактный класс
конструктор копирования
конструктор локального объекта
конструктор локальной переменной
конструктор объединения
конструктор переменной из свободной памяти
конструктор производного класса
конструктор члена класса
конструктор членов массива
контролируемое объединение
контроль диапазона
контроль доступа
контроль типов параметров функции
копирование
косвенность (косвенное обращение)
косвенный базовый класс
Л
лексема
лексические соглашения
Лисп
литерал
литеральные константы
логическая операция
локальная область видимости
М
макрокоманда
макрокоманда препроцессора
макрокоманда error
макрокоманда null
макрокоманда pragma
макрообработка
макроопределение
макроподстановка
макроподстановка (подстановка)
манипулятор
массив
метка
метка case
метка default
механизм вызова функции
метод проектирования
многомерный массив
многосимвольная константа
многоуровневая обработка ошибок
множество символов ASCII
множество символов EBCDIC
множественное наследование
модель каскад
модульное программирование
модульность
мультипликативное-выражение
Н
направленный ацикличный граф
наследование
наследование деструктора
наследование интерфейса
наследование конструктора
неоднозначное преобразование типа
неоднозначность
неоднозначность преобразования класса
неожиданные особые ситуации
неописанный параметр
неперехваченная особая ситуация
неопределенный параметр конструктора
неявный вызов деструктор
неявное преобразование
неявное преобразование типа
неявное пользовательское преобразование
О
обобщенный пробел
объединение
область видимости
область видимости friend
область видимости вложенного класса
область видимости имени
область видимости класса
область видимости локального класса
область видимости макроимени
область видимости макроопределения
область видимости метки
область видимости функции
область видимости стандартного параметра
обработка ошибок
обработчик особой ситуации
обратная дробная черта \
обратный вызов
обширный интерфейс
общий член класса
объект
объект-функция
объектно-ориентированное программирование
одиночная кавычка
окружение программы
операнд const
операнд volatile
операнд ссылка
оператор
оператор break
оператор continue
оператор do
оператор for
оператор goto
оператор if
оператор return
оператор switch (переключатель)
оператор while
оператор выражения
оператор итерации
оператор описания
оператор перехода
оператор цикла
оператор-выражение
оператор-описание
оператор-перехода
операторная функция (operator)
операционная система UNIX
операция !
операция #
операция ##
операция %=
операция &&
операция &=
операция *=
операция ++
операция +=
операция ,
операция --
операция -=
операция /=
операция ::
операция <<=
операция >>=
операция ^=
операция больше или равно
операция больше чем
операция ввода >>
операция взятия адреса
операция выбора члена класса
операция вывода <<
операция вызова функции
операция декремент
операция запятая
операция индексации
операция инкремент
операция косвенности
операция логического отрицания
операция логическое И
операция логическое ИЛИ
операция меньше или равно
операция меньше чем
операция неравно
операция отношения
операция преобразования
операция приведения
операция равенства
операция присваивания
операция-присваивания
операция разрешения области видимости
операция сдвига влево
операция сложения
операция условия ( ? : )
операция умножения
операция унарный минус
операция delete
операция new
операция sizeof
описание
описание asm
описание extern
описание friend
описание register
описание typedef
описание битового поля
описание в качестве определения
описание внешних
описание вложенного класса
описание доступа
описание дружественного класса
описание или определение
описание имени
описание имени класса
описание класса
описание класса памяти
описание локального класса
описание массива
описание параметра
описание постоянного указателя
описание ссылки
описание статического члена
описание стандартного параметра
описание статического члена
описание типа
описание указателя
описание функции
описание функции-члена
описание члена
описание члена класса
описание шаблона типа
описание-шаблона-типа
описание шаблонного класса
описание шаблонной функции
описание эллипсиса в функции
описание-особой-ситуации
описание-параметра
описатель
описатель-члена
определение
определение виртуальной функции
определение класса
определение конструктора
определение области видимости функции
определение объекта
определение статического члена
определение функции
определение-функции
определение функции-члена
определение функции-члена inline
определение шаблонного класса
определение шаблонной функции
определение чисто виртуальной функции
определение члена
определение шаблонного класса
определение шаблонной функции
определение элемента перечисления
особая ситуация
освобождение ресурса
основной тип
отладка
отличия от вычисления выражений в С
отличия от области видимости С
отличия от описания функции в С
отличия от пространства именования С
отличия от связывания в С
ошибка связывания
П
память для класса
память для массива
парадигма программирования
параметр
параметры командной строки
параметр функции
парам-шаблона-типа
параметр-шаблона-типа
первичное выражение
перевод формата \f
перегрузка
перегрузка бинарной операции
перегрузка декремента
перегрузка и доступ
перегрузка и область видимости
перегрузка и ссылка
перегрузка имени функции
перегрузка имени члена
перегрузка индексации
перегрузка инкремента
перегрузка операции
перегрузка операции выбора члена
перегрузка операции вызова
перегрузка операции присваивания
перегрузка унарной операции
передача параметра функции
переопределение виртуальной функции
переполнение
перехватить (особую ситуацию)
перечисление
побочные эффекты
поверхностное копирование
повторный запуск (особой ситуации)
поддержка абстракции данных
поддержка объектно-ориентированного программирования
поле
полное-имя-класса
пользовательская операция
пользовательская операция *=
пользовательская операция +
пользовательская операция ++
пользовательская операция -
пользовательская операция --
пользовательская операция ->
пользовательская операция =
пользовательская операция индексации
пользовательский тип
пользовательское преобразование
пользовательская унарная операция
помеченный оператор
поразрядный
поразрядное И
поразрядное включающее ИЛИ
поразрядное исключающее ИЛИ
поразрядное копирование
поразрядные операции
поразрядные логические операции
порядок выполнения операций
порядок вычислений
порядок вычисления выражения
порядок вычисления параметров
последовательность разрядов
постоянное выражение
постфиксное выражение
постфиксные ++ и --
правила разрешения перегрузки
правила областей видимости
правила преобразования типа
предварительное описание
предварительное описание класса
предварительное описание шаблона типа
предопределенная операция взятия адреса
предопределенное присваивание
предопределенные макроимена
преобразование (типа)
преобразование адреса
преобразование класса (типа)
преобразование нулевого указателя
преобразование объекта класса
преобразование одного указателя в другой
преобразование параметра
преобразование плавающей точки в целое
преобразование пользовательского типа
преобразование при присваивании
преобразование пустого указателя
преобразование с помощью конструктора
преобразование ссылки
преобразование типа возвращаемого значения
преобразования типа параметра функции
преобразование указателя
преобразование указателя базового класса
преобразование указателя в класс
преобразование указателя в функцию
преобразование указателя в целое
преобразование указателя в член
преобразование указателя на массив
преобразование указателя на производный класс
преобразование указателя типа void*
преобразование целого
преобразование целого в указатель
префиксные ++ и --
приведение
приведение адреса
приведение базового класса
приведение объекта класса
приведение производного класса
приведение к базовому классу
приведение одного указателя в другой
приведение ссылки
приведение указателя к функции
приведение указателя к целому
приведение указателя к члену
приведение целого к указателю
принадлежность
принадлежность и наследование
приоритет операций
присваивание
присваивание и адрес
присваивание и инициализация
присваивание ссылке
присваивание указателю
проверяемый-блок
проверка типа стандартного параметра
программа
программирование
проектирование С++
проектирование библиотеки
проектирование и классы
проектирование и программирование
проектирование и язык
проектирование сервисных программ
производный класс
прототипы
процедурное программирование
процесс развития
прямой базовый класс
пустая очередь
пустой оператор
пустой список параметров
пустой параметр
пустой указатель (NULL)
Р
разбиение особых ситуаций
разбиение программы
развитие С++
раздельная трансляция
размер массива по умолчанию
размер строки
размер структуры
размер указателя
размещение
размножение знака
размещение битового поля
разрешение неоднозначности
разрешение перегрузки
разрешение перегрузки шаблонной
разряд (бит)
разрядный вектор
раскручивание стека
расположение битовых полей
расположение объектов класса
реализация
редактор связей
рекурсивный вызов функции
рекурсия
С
сборка мусора
свободная память
сводка макрокоманд
сводка операторов
сводка операций
сводка правил области видимости
сводка синтаксиса выражения
связывание
связывание внешних
связывание локального имени
связывание статических
связывание шаблона типа
символ
символ шаг назад
символьная константа
символ NULL '\0'
символ подчеркивания _
Симула
синтаксис макроопределений (сводка)
синтаксис операторов
синтаксис выражений
синтаксис макрокоманд
синтаксис операторов
синтаксис описаний
синтаксис описаний класса
синтаксис описателей
синтаксис особых ситуаций
синтаксис шаблона типа
сложное имя класса
служебное слово
служебное слово class
совместимость
совместимость с ANSI C (сводка)
совместимость с С (сводка)
согласованное связывание
сопровождение программ
составной оператор
состояние потока
специальный символ
спецификации интерфейса
спецификация auto
спецификация внешнего связывания
спецификация доступа
спецификация описания
спецификация-базовых
спецификация-класса
спецификация класса памяти
спецификация-особой-ситуации
спецификация-описателя
спецификация-связи
спецификация связи функции
спецификация-типа
спецификация типа double
спецификация-типа-char
спецификация типа enum
спецификация типа float
спецификация типа int
спецификация типа short
спецификация типа struct
спецификация типа union
спецификация типа unsigned
спецификация типа void
спецификация типа volatile
спецификация функции
спецификация шаблона типа
спецификация friend
спецификация inline
спецификация pure
спецификация-pure
спецификация static
спецификация typedef
спецификация template
спецификация virtual
список-базовых
список-выражений
список-инициализаторов
список-обработчиков
список операторных функций
список-описаний
список-описателей
список-парам-шаблона-типа
список-параметров-шаблона-типа
список служебных слов
список-членов
сравнение указателей
средства проектирования
ссылка
ссылка const
ссылка volatile
ссылочное выражение
стадии проектирования
стадии развития
стадии трансляции
стандартные библиотеки
стандартный деструктор
стандартные заголовочные файлы
стандартная инициализация
стандартный каталог include
стандартный каталог включаемых файлов
стандартный компонент
стандартный конструктор
стандартный конструктор копирования
стандартный контроль доступа
стандартная операция присваивания
стандартный параметр
стандартное преобразование
стандартное целочисленное преобразование
статическая функция-член
статический класс памяти
статический контроль типов
статический локальный объект
статический член
статический член класса
строка формата
строковый класс
строковый поток
структура
структура блока
Т
тело функции
тип
тип битового поля
тип возвращаемого значения
тип виртуальной функции
тип конструктора
тип массива
тип строки
тип указателя
тип функции
тип char
тип double
тип float
тип int
тип long
тип long double
тип short
тип signed char
тип unsigned char
тип void
тип volatile
точка запуска
триграф
У
узловой класс
указание размещения
указатель
указатель на класс
указатель на функцию
указатель на функцию-член
указатель типа void*
указатель const
унарное выражение
унарная операция
унарная-операция
унарное выражение
унарное-выражение
уничтожение
уничтожение автоматических
уничтожение локальной переменной
уничтожение локальных статических
управление
управление памятью
управление свободной памятью
управляющий класс
управляющая последовательность
управляющий символ (\)
упрятывание имени
уровни абстракции
условная трансляция
условный
уточненное имя
уточненное-имя
уточненное-имя-класса
уточненное-имя-типа
Ф
файл и поток
файловая область видимости
форматированный вывод
функция
функциональная макрокоманда
функция-подстановка
функция-член
функция-член класса
функция-член friend
функция-член inline (подстановка)
функция-член локального класса
функция-член volatile
функция-член объединения
Ц
целая константа
цели проектирования
целочисленное преобразование
целочисленный тип
цикл развития
Ч
частный базовый класс
частный член класса
член
член класса
член производного класса
чисто виртуальная функция
Ш
шаблон типа
шаблонный класс
шаблонная функция
шаблонная функция-член
шаги проектирования
шестнадцатеричная константа
широкосимвольная строка
Э
эквивалентность типов
эквивалентность шаблонных типов
элемент перечисления
эллипсис ...
Я
явное преобразование типа
явный вызов деструктора
явный вызов конструктора
язык
язык высокого уровня
язык низкого уровня
язык BCPL
язык C++
язык CLU
язык SMALLTALK
языки C и C++
A
abstract абстрактный
class абстрактный класс
abstract-declarator абстрактный описатель
abstraction абстракция
data абстракция данных
levels уровни абстракции
access доступ
base class доступ к базовому классу
base class member доступ к члену базового класса
class member доступ к члену класса
control контроль доступа
declaration описание доступа
member name доступ к имени члена
protected member доступ к защищенному члену
specifier спецификация доступа
virtual function доступ к виртуальной функции
Ada Ада
addition operator операция сложения
additive operators аддитивные операции
address адрес
address-of operator операция взятия адреса
ADT abstract type абстрактный тип данных (АТД)
aggregate агрегат
Algol68 Алгол68
alignmemt выравнивание
allocation размещение
allocation-expression выражение-размещения
ambiguity неоднозначность
resolution разрешение неоднозначности
ambiguous type conversion неоднозначное преобразование типа
anachronism анахронизм
anonymous union безымянное объединение
ANSI ANSI
application framework каркас области приложения
argument параметр
argument-declaration описание-параметра
arithmetic арифметический
conversion арифметическое преобразование
exception арифметическая особая ситуация
fixed point арифметика фиксированной точности
pointer арифметические операции с указателем
type арифметический тип
unsigned арифметика беззнакового
array массив
associative ассоциативный массив
initialization инициализация массива
multidimensional многомерный массив
storage of память для массива
type тип массива
arrow operator выбор члена класса
ASCII character set множество символов ASCII
asm declaration описание asm
assembler ассемблер
assignment присваивание
and initialization присваивание и инициализация
and lvalue присваивание и адрес
assignment-expression выражение-присваивания
assignment-operator операция-присваивания
associativity of operator ассоциативность операций
asynchronous events асинхронные события
auto автоматические
destruction уничтожение автоматических
initialization инициализация автоматических
specifier спецификация auto
storage class класс памяти auto
B
backslash обратная дробная черта
backspace символ шаг назад
base базовый
class базовый класс
class access доступ к базовому классу
class cast приведение к базовому классу
base-list список-базовых
base-specifier спецификация-базовых
BCPL BCPL
binding связывание
bit разряд (бит)
field битовое поле
pattern последовательность разрядов
vector разрядный вектор
bit-field битовое поле
address of адрес битового поля
alignment выравнивание битового поля
declaration описание битового поля
layout размещение битового поля
type тип битового поля
bitwise поразрядный
AND operator поразрядное И
copy поразрядное копирование
exclusive OR operator поразрядное исключающее ИЛИ
inclusive OR operator поразрядное включающее ИЛИ
logical operators логические операции
operators поразрядные операции
block блок
statement { } составной оператор
structure структура блока
body, function тело функции
break statement оператор break
buffering, I/O буферизация ввода-вывода
built-in встроенный
operator встроенная операция
type встроенный (основной) тип
C
C C
C ANSI C ANSI
C++ C и C++
C++ C++
evolution развитие C++
call вызов
by reference вызов по ссылке
by value вызов по значению
function вызов функции
operator function вызов операторной функции
callback обратный вызов
carriage return возврат каретки
cast приведение
base class приведение базового класса
class object приведение объекта класса
derived class приведение производного класса
integer to pointer приведение целого к указателю
operator операция приведения
pointer to function приведение указателя к функции
pointer to integer приведение указателя к целому
pointer to member приведение указателя к члену
pointer to pointer приведение одного указателя
в другой
reference приведение ссылки
cast-expression выражение-приведения
catch перехватить
CDT concrete type конкретный тип данных (КТД)
char type тип char
type, signed тип signed char
type specifier спецификация-типа-char
type, unsigned тип unsigned char
character символ
constant символьная константа
set, ASCII множество символов ASCII
set, EBCDIC множество символов EBCDIC
class класс
abstract абстрактный класс
alignment выравнивание класса
and type класс и тип
base базовый класс
constructor and abstract конструктор и абстрактный класс
constructor for derived конструктор для производного класса
conversion преобразование объекта класса
conversion ambiguity неоднозначность преобразования
объекта класса
declaration описание класса
declaration, forward предварительное описание класса
declaration, friend описание дружественного класса
definition определение класса
derived производный класс
destructor for derived деструктор производного класса
exception класс особой ситуации
friend дружественный класс
handle управляющий класс
hierarchy иерархия классов
interface интерфейс класса
member член класса
member access доступ к члену класса
member access operator операция выбора члена класса
member, alignment выравнивание члена класса
member, constructor for конструктор члена класса
member declaration описание члена класса
member function функция-член класса
member initialization инициализация члена класса
member of derived член производного класса
member, private частный член класса
member, public общий член класса
member, static статический член класса
name имя класса
name declaration описание имени класса
name, elaborated сложное имя класса
nested вложенный класс
node узловой класс
pointer to указатель на класс
private base частный базовый класс
scope область видимости класса
storage память для класса
template шаблонный класс
versus struct класс или структура
versus union класс или объединение
virtual base виртуальный базовый класс
class-key служебное слово class
class-name имя-класса
class-specifier спецификация-класса
CLU CLU
Cobol Кобол
comma operator операция запятая
command line argument параметры командной строки
comment комментарий
compatibility совместимость
with ANSI C summary совместимость с ANSI C (сводка)
with C summary совместимость с С (сводка)
compilation, separate раздельная трансляция
complete-class-name полное-имя-класса
compound statement составной оператор
concatenation string конкатенация строк
concrete type конкретный тип
type, CDT конкретный тип данных (КТД)
conditional условный
compilation условная трансляция
expression operator операция условия ( ? : )
constant константа
character символьная константа
decimal десятичная константа
double константа double
enumeration константа перечисления
expression выражение константа
float константа float
floating point константа с плавающей точкой
hexadecimal шестнадцатеричная константа
integer целая константа
long константа long
long double константа long double
multicharacter многосимвольная константа
octal восьмеричная константа
of user-defined type константа пользовательского типа
unsigned константа unsigned
constant-expression выражение-константа
constructor конструктор
address of адрес конструктора
call, explicit явный вызов конструктора
conversion by преобразование с помощью
конструктора
copy конструктор копирования
default стандартный конструктор
default copy стандартный конструктор копирования
definition определение конструктора
exception handling конструктор в обработке
особых ситуаций
for array members конструктор членов массива
for class member конструктор члена класса
for derived class конструктор производного класса
for free store variable конструктор переменной,
размещаемой в свободной памяти
for global variable конструктор глобальной переменной
for local variable конструктор локальной переменной
for temporary конструктор временного объекта
inheritance наследование конструкторов
local object конструктор локального объекта
type of тип конструктора
undefined argument to неопределенный параметр конструктора
union конструктор объединения
virtual виртуальный конструктор
containment принадлежность
and inheritance принадлежность и наследование
continue statement оператор continue
control access контроль доступа
conversion преобразование (типа)
argument преобразование параметра
arithmetic арифметические преобразования
array pointer преобразование указателя на массив
base class pointer преобразование указателя
базового класса
by assignment преобразование при присваивании
by constructor преобразование конструктором
class преобразование класса (типа)
derived class pointer преобразование указателя
на производного класса
floating point integer преобразование значения с
плавающей точкой в целое
implicit неявное преобразование
implicit type неявное преобразование типа
integer преобразование целого
integer to pointer преобразование целого в указатель
lvalue преобразование адреса
null pointer преобразование пустого указателя
of pointer to class преобразование указателя в класс
operator операция преобразования
pointer преобразование указателя
pointer to function преобразование указателя в функцию
pointer to integer преобразование указателя в целое
pointer to member преобразование указателя в член
pointer to pointer преобразование одного указателя
в другой
reference преобразование ссылки
return type преобразование типа возвращаемого
значения
rules, type правила преобразования типа
standard стандартное преобразование
user-defined пользовательское преобразование
user-defined type преобразование пользовательского типа
void* pointer преобразование указателя типа void*
zero pointer преобразование нулевого указателя
conversion-function-name имя-функции-преобразования
copy копирование
bitwise поразрядное копирование
deep глубокое копирование
shallow поверхностное копирование
D
data данные
abstraction абстракция данных
abstraction, support for поддержка абстракции данных
abstraction vs inheritance абстракция данных или наследование
global глобальные данные
debugging отладка
declaration описание
access описание доступа
argument описание параметра
array описание массива
as definition описание в качестве определения
asm описание asm
bit-field описание битового поля
class описание класса
class member описание члена класса
class name описание имени класса
constant pointer описание постоянного указателя
default argument описание стандартного параметра
definition versus описание или определение
ellipsis in function описание эллипсиса в функции
extern описание extern
forward предварительное описание
friend описание friend
friend class описание дружественного класса
function описание функции
function member описание функции-члена
function template описание шаблонной функции
local class описание локального класса
member описание члена
name описание имени
pointer описание указателя
reference описание ссылки
register описание register
specifier спецификация описания
statement оператор описания
static member описание статического члена
storage class описание класса памяти
syntax summary синтаксис описаний (сводка)
syntax summary, class синтаксис описаний класса (сводка)
template описание шаблона типа
template class описание шаблонного класса
template function описание шаблонной функции
type описание типа
typedef описание typedef
declaration описание
declaration-list список-описаний
declaration-statement оператор-описание
declarator описатель
declarator-list список-описателей
decl-specifier спецификация-описателя
decrement operator операция декремент
default access control стандартный контроль доступа
argument стандартный параметр
argument evaluation вычисление стандартного параметра
argument, scope область видимости стандартного параметра
argument type checking проверка типа стандартного параметра
array size размер массива по умолчанию
assignment operator стандартная операция присваивания
constructor стандартный конструктор
copy constructor стандартный конструктор копирования
destructor стандартный деструктор
initialization стандартная инициализация
definition определение
class определение класса
constructor определение конструктора
enumerator определение элемента перечисления
function определение функции
function template определение шаблонной функции
inline member function определение функции-члена inline
member определение члена
member function определение функции-члена
object определение объекта
pure virtual function определение чисто виртуальной
функции
scope of function определение области видимости
функции
static member определение статического члена
template class определение шаблонного класса
template function определение шаблонной функции
virtual function определение виртуальной функции
delete operator операция delete
dereferencing косвенность (косвенное обращение)
derived class производный класс
design aims цели проектирования
and classes проектирование и классы
and language проектирование и язык
and programming проектирование и программирование
library проектирование библиотеки
method метод проектирования
of C++ проектирование С++
stage стадии проектирования
steps шаги проектирования
tools средства проектирования
destruction уничтожение
of auto уничтожение автоматических
of local static уничтожение локальных статических
of local variable уничтожение локальной переменной
destructor деструктор
default стандартный деструктор
for derived class деструктор производного класса
for temporary деструктор временного объекта
inheritance наследование деструктора
invocation вызов деструктора
local object деструктор локального объекта
virtual виртуальный деструктор
development cycle цикл развития
process процесс развития
stages стадии развития
difference from C expression отличия от вычисления выражений в С
evaluation
from C function declaration отличия от описания функции в С
from C linkage отличия от связывания в С
from C name space отли...


