Синтаксис / семантика C ++ Вопрос: Ссылка на функцию и ключевое слово typedef

Что бы typedef int (& rifii) (int, int) для?

Для чего используется typedef перед этим "оператором"? Я хочу думать об этом как о

typedef (int (&rifii) (int, int)) [new name]

, но [новое имя] отсутствует, как если бы вы это сделали

typedef int INTEGER;

Аналогичный вопрос для следующего синтаксиса:

typedef void (*PF) ();

PF edit_ops[ ] = { &cut, &paste, &copy, &search };
PF file_ops[ ] = { &open, &append, & close, &write };

PF* button2 = edit_ops;
PF* button3 = file_ops;

button2[2]( );

Что позволяет typedef? Делает ли это так, что вам не нужно набирать:

void (*PF) ();
(void (*PF) ()) edit_ops[ ] = { &cut, &paste, &copy, &search };
(void (*PF) ()) file_ops[ ] = { &open, &append, & close, &write };

(void (*PF) ())* button2 = edit_ops;
(void (*PF) ())* button3 = file_ops;

Если да, то что случилось со второй частью ([что вы хотите]) typedef как в:

typedef [what you have -- (FP)] [what you want]

Я очень благодарен за разъяснения по этому поводу.

7
задан Matthew Hoggan 1 August 2011 в 23:40
поделиться