Re: pointeurs sur fonctions
TOUTES LES SYNTAXES SONT IDENTIQUES POUR UN POINTEUR DE FONCTION;
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
void print() { cout << "hello" << endl; }
typedef void (*fonction) (void);
int main() {
fonction f;
f= &print; // Se traduit bien par un type void (*fonction) (void)
(*f)();
f= print; // Ici, l'absence de () indique au compilo que c'est l'adresse de la fonction. Donc du bon type.
(*f)();
f= &print; // Pour le compilateur c'est identique à la ligne précédente. Mais c'est superflu.
f();
f= print; //Déjà testé.
f(); // f est un pointeur de fonction, le compilateur sait dons comment traduire cette ligne, identique à un appel normal.
return 0;
} |