Prototype de fonction C++

Résolu
Bonjour,

est ce quelqu'un SVP peut m'expliquer c'est quoi le prototype de fonctions en C++ ??

2 réponses

  1. Contributeur
    le nom de la fonction ce qu'elle retourne ainsi que le nombre et le type des arguments.
    0
    1. Merci :)
      0
  2. 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
    1. Merci bcp,j'ai bien compris d'après votre explication :)
      0