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 :

Abstraction sur opprerateurs...


Sujet :

C++

  1. #1
    waf
    waf est déconnecté
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1
    Par défaut Abstraction sur opprerateurs...
    Bonjour tout le monde

    j'ai 4 fonctions qui different uniquement au niveau des opperateurs utilisés (+-* et /) et je voudrait me réduire a une seule fonction qui prenne un paramettre lui permettant de déterminer quel opperateur utiliser.

    Je doute qu'il existe des templates d'opperateurs (j'ai fouille le msdn mais niet)

    Sinon je pensais a déclarer un tableau de pointeurs sur opperateurs mais j'ai toujours pas réussi....

    Si vous avez deja rencontre un probleme similaire ou que vous avez des idees, merci d'avance

    Waf

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Tu peux utiliser les foncteurs arithmétiques définis dans la bibliothèque standard :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    #include <functional>
    #include <iostream>
     
    template <typename T>
    double DoSomething(double x, double y, T Op)
    {
        return Op(x, y);
    }
     
    int main()
    {
        std::cout << DoSomething(5.4, 3.2, std::plus<double>())       << std::endl;
        std::cout << DoSomething(5.4, 3.2, std::minus<double>())      << std::endl;
        std::cout << DoSomething(5.4, 3.2, std::multiplies<double>()) << std::endl;
        std::cout << DoSomething(5.4, 3.2, std::divides<double>())    << std::endl;
     
        return 0;
    }

  3. #3
    Membre chevronné Avatar de xxiemeciel
    Inscrit en
    Juin 2005
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 371
    Par défaut
    Salut,

    tu peux aussi utiliser une macro (je crois qu'on peut donner un operateur en parametre) ou un pointeur sur fonction.

    XXiemeciel

Discussions similaires

  1. Réponses: 0
    Dernier message: 11/06/2015, 11h59
  2. Réponses: 4
    Dernier message: 18/07/2012, 11h21
  3. Probleme d'abstraction sur structure
    Par karasnake dans le forum C++/CLI
    Réponses: 1
    Dernier message: 08/06/2010, 15h25
  4. résumé/abstract sur Texniccenter
    Par aer0s dans le forum Débuter
    Réponses: 3
    Dernier message: 19/05/2010, 16h51
  5. Classe abstract mappée sur deux tables
    Par Hyperion99 dans le forum Hibernate
    Réponses: 4
    Dernier message: 03/10/2007, 14h33

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