IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Methode d'appel de fonction


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    .
    Inscrit en
    Octobre 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : .
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 174
    Par défaut Methode d'appel de fonction
    Bonjour,

    J'ai un programme dans lequel je dois faire un appel de X fonctions définies comme ceci:

    ptr->fonct_1
    ptr->fonct_2
    ptr->fonct_3
    ...
    ptr->fonct_x

    Je voulais savoir si vous connaissez une astuce qui permettrait de faire un truc du genre:

    for(int i,...)
    {
    ptr->(fonct_ + i);
    }

    Merci

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 494
    Par défaut
    T'es fonction n'ont jamais de paramètres ???

    Pourquoi ne pas faire une simple fonction qui appel elle-même ces fonctions ?

    Si tes fonctions ont toutes la même signature, pourquoi ne pas mettre leurs adresses dans un simple std<array> ou std<vector> ?

  3. #3
    Membre très actif
    Homme Profil pro
    .
    Inscrit en
    Octobre 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : .
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 174
    Par défaut
    Elles ont des paramètres qui sont identiques.
    Je suis entrain de faire du test unitaire sur ces fonctions et je voulais éviter d'avoir à écrire 100 fois la même chose.

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 494
    Par défaut
    Je suis entrain de faire du test unitaire sur ces fonctions et je voulais éviter d'avoir à écrire 100 fois la même chose.
    C'est des tests unitaires, quand ça part en sucette, c'est pour avoir un rapport PRÉCIS.
    Pour ce genre de génération de code à la pelle, bin utilises un générateur de code comme tous les outils de type T4.

  5. #5
    Membre très actif
    Homme Profil pro
    .
    Inscrit en
    Octobre 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : .
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 174
    Par défaut
    Je ne connais pas du tout les outils de type T4.

    J'utilise actuellement la lib boost pour la génération de mes tests

  6. #6
    Membre Expert
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Par défaut
    Citation Envoyé par bacelar Voir le message
    C'est des tests unitaires, quand ça part en sucette, c'est pour avoir un rapport PRÉCIS.
    Pour ce genre de génération de code à la pelle, bin utilises un générateur de code comme tous les outils de type T4.
    Tout à fait . Un test unitaire = une fonctionnalité d'une fonction. Les tests doivent être indépendants des autres, quitte à avoir cent fois la même ligne de code. De la sorte, le jour où un test U échouera, le stagiaire qui devra comprendre pourquoi lira un code très simple qui se suffit à lui-même et aura toutes ses chances pour corriger la fonction testée.

  7. #7
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    Un des meilleurs outils qui soient : trois touches au total <ctrl> c et v, sous la forme de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <ctrl>+c
    <ctrl>+v
    <ctrl>+v
    <ctrl>+v
    /* ...*/
    Après, y a plus qu'à changer le nom de la fonction appelée

    Plus sérieusement : le but d'un test unitaire est de s'assurer que chaque fonctionnalité à laquelle tu aies accès présente exactement le comportement auquel tu es en droit de t'attendre.

    Si tu as ... N fonctions exposées, la première chose à faire est de tester ces N fonctions séparément pour t'assurer qu'elles fonctionnent bel et bien de manière cohérentes quand elles sont prise seules.

    Et si, après, tu as une fonction (supplémentaire) qui utilise M de ces fonctions dans un ordre particulier, alors, tu crées un test qui s'assure que le résultat obtenu par cette fonction spécifique correspond à ce à quoi tu es en droit de t'attendre

    Enfin, un petit truc : si une fonction accepte des valeurs comprises entre 0 et 100 : cela ne sert à rien de s'amuser à recopier le test unitaire pour les 100 valeurs possibles. Ce qui est beaucoup plus intéressant, c'est de tester le comportement de ta fonction avec des valeurs "limites", "problématiques" (ex: 0 comme diviseur) ou "hors normes"
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Appeler une fonction avec "action" ds un
    Par drinkmilk dans le forum ASP
    Réponses: 4
    Dernier message: 20/04/2004, 14h54
  2. Réponses: 4
    Dernier message: 19/04/2004, 13h41
  3. [JSP] Appeler une fonction
    Par Patrick95 dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 23/12/2003, 13h44
  4. Appel à des fonctions incluses dans des DLL
    Par Greybird dans le forum Langage
    Réponses: 3
    Dernier message: 26/05/2003, 13h33
  5. Appeler une fonction avec/sans parenthèses
    Par haypo dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 29/12/2002, 18h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo