wskaźniki do funkcji typedef c++

0

Mam pytanie czy dobrze zadeklarowałem wskaźnik pa do tablicy ap i jak mógłbym to zrobić używając y z typedef.

void f1(applicant *a);
const char * f2(const applicant *, const applicant *);

typedef const char *(*y)(const applicant *, const appliacant *);
typedef (*x)(applicant *);

x p1 = f1;
y p2 = f2;

x ap[5];
auto pa = ≈
0

W c++ powinieneś używać using zamiast typedef.

Gdzie odpowiednio przed nawiasem masz wartość zwracaną, a w nawiasie parametry.

using funcPtr = std::add_pointer<int(int)>::type;
funcPtr ptr = func;

Ewentualnie auto ptr = func;

W C się używa typedef, a w C++ już using, nowocześniej.

0

Nigdzie nie ma definicji ap, więc formalnie rzecz biorąc źle.

Swoją drogą cytat z Wujka Boba:
"W C++ deweloperzy mają wskaźniki do funkcji, ale ich nie używają jeśli są zdrowi na umyśle."

1

To się nie kompiluje :(.
Po naprawie sam dojdź do wniosku co jest poprawne:
https://godbolt.org/z/7aeWb7TYG

0

Chyba chciałeś to odwrotnie zrobić

x ap[5];
ap[0] = f1;

1 użytkowników online, w tym zalogowanych: 0, gości: 1