Składnia deklaracji funkcji
Funkcje mogą być globalne lub członkowie klasy lub struktury.Są one zgłoszone, za pomocą następującej sekwencji:
[friend] [storage-class-specifier] [function-specifier]
[[cv-qualifer] type-specifier] declarator [cv-qualifer]
[exception-spec]
[friend] [storage-class-specifier] [function-specifier]
[[cv-qualifer] type-specifier] [*|&] [ms-modifer] identifier
( argument-list ) [cv-qualifer] [exception-spec]
Specyfikator deklaracji.Zobacz Specyfikatory.
W klasie, opcjonalny friend specyfikatora.
Specyfikator klasy magazynowania opcjonalne.Funkcje globalne Specyfikatory klasy magazynowania dopuszczalne są statyczne i extern.Dla klasy funkcji elementów członkowskich extern nie jest dozwolone.
Specyfikator funkcji opcjonalnych.Funkcje globalne Specyfikator funkcji tylko dopuszczalne jest wbudowanej. Dla klasy funkcji elementów członkowskich wirtualnego i inline są dozwolone i dla konstruktorów, jawne.
Specyfikator typu, wskazujące typ zwracany (z zastrzeżeniem modyfikacji typu wskaźnik lub odniesienia, za pomocą * lub &).
Niewłaściwy deklarator.
Opcjonalne wskaźnik lub operatora(-ów) odniesienia, modyfikowanie zwracany typ
Opcjonalne Microsoft szczególnych modyfikatora określające konwencję wywołania.Zobacz modyfikatorów programu Microsoft.
Nazwa funkcji.Jeśli funkcja jest członkiem klasy lub struktury, mogą zostać zakwalifikowane nazwę operatora zakres rozdzielczości.
Wykaz deklaracji argument ujęty w nawiasy ().
Opcjonalne kwalifikator const lub volatile.W tym kontekście const być używane tylko dla członków klasy i jest używany do wskazania funkcji nie będą modyfikować dane członkowie klasy.
Jeśli typ zwracany jest wskaźnik funkcji, składnia; niewłaściwy deklarator może być bardziej złożone, jak wyjaśniono poniżej.
- Specyfikacja wyjątek opcjonalny wskazujący jakie wyjątki zgłasza funkcji.Zobacz specyfikacji wyjątek.
Typ identyfikatora, tak zgłoszonych, które mogą być zbudowane w następujący sposób: const lub funkcji lotnych (Jeśli określono), biorąc na liście określony argument zwraca typ wskazany przez Specyfikator deklaracji.
Poniższy przykład przedstawia dwie deklaracje prosta funkcja:
char *strchr( char *dest, char *src );
static int atoi( const char *ascnum ) const;
Deklarowanie funkcji zwracających wskaźników do funkcji
Zalecane jest typedef celu zgłoszenia aliasem dla typu wskaźnik funkcji, jeśli deklarowania funkcji, która zwraca typ wskaźnika funkcji.Na przykład
typedef int (*fp)(int);
fp myFunction(char* s); // function returning function pointer
Jeśli nie zostanie to zrobione, prawidłowej składni dla deklaracji funkcji mogą być wywnioskowane ze składni; niewłaściwy deklarator wskaźnik funkcji przez zastąpienie identyfikatora (fp w powyższym przykładzie) z nazwą i argument listy funkcji, w następujący sposób:
int (*myFunction(char* s))(int);
Deklaracja poprzedniego jest równoważne deklaracji, przy użyciu elementu typedef powyżej.