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 :

2 fonctions en une ?


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de tintin72
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    663
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 663
    Par défaut 2 fonctions en une ?
    Bonjour,

    J'aimerais savoir quel est la meilleur option lorsque l'on a 2 fonctions membres
    d'une même classe qui font exactement la même chose à un détail près.
    La 1ere fonction prend une valeur comme argument et assigne celle-ci à une variable membre.
    La 2eme fonction ne prend pas d'argument et initialise directement la variable membre à zéro.
    Ensuite le code des 2 fonctions est identique.

    C'est un peu dommage de réécrire 2 fois le même code juste pour une histoire d'initialisation.

    Faut-il une fonction virtuelle ?

    Si quelqu'un peut m'éclairer

    Merci

  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 : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Mettre 0 comme valeur par défaut au paramètre de la fonction ?

  3. #3
    Membre éclairé Avatar de tintin72
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    663
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 663
    Par défaut
    Non, ça va pas le faire.
    J'ai oublié de dire que le type de l'argument est en fait géré par les templates.
    Donc si le type est une structure par ex, ça marchera pas.

  4. #4
    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 : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Donc si le type est une structure par ex, ça marchera pas
    Alors comment fais-tu dans ton code pour "affecter zéro" lorsque le paramètre est de type structure ? On peut en voir un morceau ?

  5. #5
    Membre éclairé Avatar de tintin72
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    663
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 663
    Par défaut
    Non, ça va pas le faire.
    J'ai oublié de dire que le type de l'argument est en fait géré par les templates.
    Donc si le type est une structure par ex, ça marchera pas.
    C'était en réponse à Laurent.
    Rigobert a posté sa solution entre temps

    Je vais voir pour ta solution Rigobert

  6. #6
    Membre éclairé Avatar de tintin72
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    663
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 663
    Par défaut
    Ben j'ai déjà essayé de mettre 0, mais le compilo me dit que l'argument attendu est une struct et pas un int.

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 464
    Par défaut
    Citation Envoyé par tintin72
    Ben j'ai déjà essayé de mettre 0, mais le compilo me dit que l'argument attendu est une struct et pas un int.
    si c'est un template, passer struct ou int en paramètre c'est normalement kif-kif ?!

    est-ce que tu peux faire un copier-coller du code des déclarations et des appels ?

  8. #8
    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 : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Citation Envoyé par tintin72
    Ben j'ai déjà essayé de mettre 0, mais le compilo me dit que l'argument attendu est une struct et pas un int.
    Normal... Donc en gros tu ne peux appeler la fonction sans paramètre qu'avec des types constructibles à partir d'entiers c'est bien ça ?

  9. #9
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 464
    Par défaut
    Faire par exemple une fonction interne (privée ou protégée) qui contient le code commun et l'appeler par chacune des 2 fonctions publiques ; ces dernières peuvent éventuellement être "inline" si elle contiennent peu de code spécifique, ce qui supprime la pénalité (en temps machine) due à l'appel de fonction supplémentaire.

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

Discussions similaires

  1. [VB6]Valeurs une collection renvoyée par la fonction d'une classe
    Par jacma dans le forum VB 6 et antérieur
    Réponses: 14
    Dernier message: 30/03/2004, 11h04
  2. Réponses: 4
    Dernier message: 17/03/2004, 17h24
  3. Réponses: 14
    Dernier message: 15/01/2004, 01h15
  4. [VStudio 6] pb avec fonctions dans une DLL
    Par MogDeChNord dans le forum MFC
    Réponses: 8
    Dernier message: 08/01/2004, 08h57
  5. [VB6] Ajouter un commentaire à une fonction d'une DLL
    Par Ace303 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 05/06/2003, 08h14

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