Partage
  • Partager sur Facebook
  • Partager sur Twitter

fonction avec un nombre indéfinit de parametre

un exemple concret ne me ferait pas de mal ^^

Sujet résolu
8 juin 2007 à 13:24:21

je sais qu'avec <stdarg.h> on peut faire des fonction avec un nombre indefini de parametre :) (comme la fonction printf en C)

mais voila il ne me donne AUCUN exemple concret (-c'est assez frustrant :'( )

merci de me répondre (car j'en ai un peu besoin :p )
  • Partager sur Facebook
  • Partager sur Twitter
8 juin 2007 à 14:42:17

En C++, c'est <cstdarg>, non ?

Sinon, exemple tiré de mon livre de C++ :

void presidents(int n, ...)
{
    va_list ap; //List des arguments
    va_start(ap, n); //Qu'on initialise
   
    while(n--) //On parcourt les arguments
    {
        char *name = va_arg(ap, char*);//et on les récupère avec va_arg(liste, type)
        int year = va_arg(ap, int); //idem
        std::cout << year << ' ' << name << std::endl;
    }
    va_end(ap); //fin
}

Qui s'utilise comme ceci :

presidents(3, "J. Chirac", 1995, "J. Chirac", 2002, "N. Sarkozy", 2007);


et affiche


1995 J. Chirac
2002 J. Chirac
2007 N. Sarkozy


Voilà, c'est non testé, mais ça donne le principe.
  • Partager sur Facebook
  • Partager sur Twitter
J'ai déménagé sur Zeste de savoir — Ex-manager des modérateurs.
8 juin 2007 à 16:35:23

ok merci (parce que mon livre de c++ est un peu vieux (encor iostream.h...)
merci du tuyau^^
  • Partager sur Facebook
  • Partager sur Twitter
8 juin 2007 à 22:55:06

Ce truc et du C et restera du C encore un petit moment : il est impossible de passer des trucs non-pod (en gros des objets) à ce genre de fonctions. (i.e. mauvais forum)

http://c.developpez.com/faq/cpp/?page=fonctions#CLASS_chainage_appels
  • Partager sur Facebook
  • Partager sur Twitter
C++: Blog|FAQ C++ dvpz|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS| Bons livres sur le C++| PS: Je ne réponds pas aux questions techniques par MP.