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

R.9.3.2 Функции-члены со спецификацией inline.

   


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

Функцию-член можно определить ($$R.8.3) в описании класса, в таком случае она считается подстановкой (inline, $$R.7.1.2). Определять функцию в описании класса - это эквивалентно тому, чтобы описывать функцию и определять ее со спецификацией inline сразу же после описания класса. Считается, что такой перенос определения функции происходит после препроцессорной обработки до стадии синтаксического анализа и контроля типов. Поэтому программный фрагмент

           int b;
           struct x {
              char* f() { return b; }
              char* b;
           };

эквивалентен

           int b;
           struct x {
              char* f();
              char* b;
           };

           inline char* x::f() { return b; } // перенос

Здесь в функции x::f() используется x::b, а не глобальное b.

Функции-члены можно определять даже в описании локальных или вложенных классов, где такой перенос будет синтаксически незаконным. Локальные классы обсуждаются в R.9.8, а вложенные классы в $$R.9.7.


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


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

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