|
|
Имя типа необходимо указывать при задании операции явного преобразования типа или в качестве параметра в операциях sizeof или new. Для этого служит конструкция имя-типа, которая синтаксически эквивалентна описанию объекта или функции этого типа, в котором отсутствует имя объекта или функции.
имя-типа:
список-спецификаций-типа абстрактный-описатель opt
список-спецификаций-типа:
спецификация-типа список-спецификаций-типа
абстрактный-описатель:
операция-ptr абстрактный-описатель opt
абстрактный-описатель opt ( список-описаний-параметров )
список-спецификаций cv opt
абстрактный-описатель opt [ выражение-константа opt ]
( абстрактный-описатель )
Можно однозначно указать, в каком месте абстрактного-описателя нужно добавить идентификатор, чтобы конструкция стала описателем, допустимым в описании. Тогда поименованный тип будет тем же, что и тип гипотетического идентификатора. Например, описания
int // int i int * // int *pi int *[3] // int *p[3] int (*)[3] // int (*p3i)[3] int *() // int *f() int (*)(double) // int (*pf)(double)
задают соответственно такие типы: "целое", "указатель на целое", "массив из 3 указателей на целое", "указатель на массив из 3 целых", "функция без параметров, возвращающая указатель на целое", "указатель на функцию с параметром типа double, возвращающую целое".
| |