Prototype de fonction C++

Résolu
jihane jihane Messages postés 65 Date d'inscription   Statut Membre Dernière intervention   -  
jihane jihane Messages postés 65 Date d'inscription   Statut Membre Dernière intervention   - 7 nov. 2011 à 17:06
Bonjour,



est ce quelqu'un SVP peut m'expliquer c'est quoi le prototype de fonctions en C++ ??
A voir également:

2 réponses

Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 298
 
le nom de la fonction ce qu'elle retourne ainsi que le nombre et le type des arguments.
0
jihane jihane Messages postés 65 Date d'inscription   Statut Membre Dernière intervention  
 
Merci :)
0
silentData Messages postés 183 Date d'inscription   Statut Membre Dernière intervention   40
 
Un prototype te permet de déclarer une fonction que tu implémente plus bas.

Imagine ceci :

int i = 3;

void a() {
    if (i != 0) {
        b();
    }
    c();
}

void b() {
    i--;
    if (i > 0) {
        c();
    }
}

void c() {
    printf("lol");
}


Le problème du code ci-dessus (outre le fait qu'il ne veut rien dire et que c'est le bordel), est que la fonction a() appelle la fonction b() et inversement. Or, b() n'existe pas pour a() car il est déclaré au dessous. Et si on mets b() avant a(), c'est a() qui n'existera pas pour b().

Ainsi, tu peux régler ce problème avec un prototype :

int i = 3;

void a();
void b();
void c();

void a() {
    if (i != 0) {
        b();
    }
    c();
}

void b() {
    i--;
    if (i > 0) {
        c();
    }
}

void c() {
    printf("lol");
}


Les 3 prototypes permettent de déclarer une fonction pour la rendre visible à a(), tout en implémentant leur contenu plus tard. Un prototype doit avoir la même signature que la fonction elle-même.

Voilà la principale utilité des prototype.
0
jihane jihane Messages postés 65 Date d'inscription   Statut Membre Dernière intervention  
 
Merci bcp,j'ai bien compris d'après votre explication :)
0