Введение в язык Си++

         

Имена типов


Иногда (для неявного задания преобразования типов и в качестве параметра sizeof или new) нужно использовать имя типа данных. Это выполняется при помощи "имени типа" которое по сути является описанием для объекта этого типа, в котором опущено имя объекта.

имя_типа: спецификатор_типа абстрактный_описатель абстрактный_описатель : пустой * абстрактный_описатель абстрактный_описатель ( списоко_писателей_параметров) абстрактный_описатель [ константное_выражение opt ] ( абстрактный_описатель )

Является возможным идентифицировать положение в абстрактном_описателе, где должен был бы появляться идентификатор в случае, если бы конструкция была описателем в описании. Тогда именованный тип является тем же, что и тип предполагаемого идентификатора. Например:

int int * int *[3] int *() int (*)()

именует, соответственно, типы "целое", "указатель на целое", "указатель на массив из трех целых", "функция, возвращающая указатель на функцию, возвращающую целое" и "указатель на целое".

Простое имя типа есть имя типа, состоящее из одного идентификатора или ключевого слова.

простое_имя_типа: typedef-имя char short int long unsigned float double

Они используются в альтернативном синтаксисе для преобразования типов. Например:

(double) a

может быть также записано как

double (a)



Содержание раздела