R Справочное руководство по С++

R.7.1 Спецификации.

   


Назад  |  Вперёд

В описании можно использовать следующие спецификации:

           спецификация-описания:
               спецификация-класса-памяти
               спецификация-типа
               спецификация-fct
               спецификация-шаблона-типа
               friend
               typedef
           спецификации-описания:
               спецификации-описания opt спецификация-описания

Самая длинная последовательность конструкций спецификация-описания, которая, возможно, является именем типа, образует в описании конструкцию спецификации-описания. Последовательность должна быть согласованной, что объясняется ниже. Например,

           typedef char* Pc;
           static Pc;        // ошибка: нет имени

Здесь описание static Pc является незаконным, поскольку не указано никакого имени статической переменной типа Pc. Чтобы иметь переменную типа int с именем Pc, необходимо задать спецификацию-типа int, чтобы показать, что (пере)определяется имя Pc из typedef, а не просто Pc является одним из элементов последовательности конструкций спецификация-описания, например,

           void f(const Pc);      // void f(char* const)
           void g(const int Pc);  // void g(const int)

Укажем, что поскольку signed, unsigned, long и short по умолчанию трактуются как int, конструкция имя-typedef, которая появляется после одной из перечисленных спецификаций типа, должна задавать (пере)определяемое имя, например,

           void h(unsigned Pc);     // void h(unsigned int)
           void k(unsigned int Pc); // void k(unsigned int)

Назад  |  Вперёд


OtDiatlovaOU
К началу книги

Оформление и дизайн книги OtDiatlovaOU.
Вся книга, архив.