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

Langage C++ Discussion :

Template ou non


Sujet :

Langage C++

  1. #1
    Membre confirmé Avatar de babar63
    Homme Profil pro
    Développeur jeux vidéos/3d Temps réel
    Inscrit en
    Septembre 2005
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur jeux vidéos/3d Temps réel

    Informations forums :
    Inscription : Septembre 2005
    Messages : 241
    Par défaut Template ou non
    Bonjour a tous,
    Je developpe actuellement une librairie pour tout ce que qui est vecteur, matrix...
    J'aurais deux questions concernant la marche a suivre :
    Premierement j'aimerai savoir si il est preferable d'utiliser les templates ou non pour creer mes classes (je debute dans le domaine des templates et je ne sais pas toujours dans quel cas les utiliser :s)
    Deuxiemement voila un exemple de déclaration de mes fonctions a l'interieur de ma classe Vect3 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Vect3<T> operator - (const Vect3<T> & myVect3) const;
    void operator -= (const Vect3<T> & myVect3);
    J'utilise constamment le passage par référence ainsi que le void pour éviter d'avoir à recopier les données a chaque fois mais est-ce vraiment une optimisation, est-ce vraiment utile ou est il preferable d'utiliser plutot :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Vect3<T> operator - (Vect3<T> myVect3);
    Vect3<T> operator -= (Vect3<T> myVect3);
    Si vous avez quelques conseils à me donner merci d'avance
    Bonne journée.

  2. #2
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Vect3<T>& operator -= (Vect3<T> const& myVect3);

  3. #3
    Membre confirmé Avatar de babar63
    Homme Profil pro
    Développeur jeux vidéos/3d Temps réel
    Inscrit en
    Septembre 2005
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur jeux vidéos/3d Temps réel

    Informations forums :
    Inscription : Septembre 2005
    Messages : 241
    Par défaut
    Comment peut-on retourner l'adresse d'une variable qui va etre supprimé?
    Et puis je ne vois pas l'avantage, cela revient bien au meme que d'utiliser "void" (je modifie directement mes parametres a l'interieur de la fonction) non?

  4. #4
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par babar63 Voir le message
    Comment peut-on retourner l'adresse d'une variable qui va etre supprimé?
    *this ne devrait pas être supprimé.

    Et puis je ne vois pas l'avantage, cela revient bien au meme que d'utiliser "void" (je modifie directement mes parametres a l'interieur de la fonction) non?
    Principe de moindre surprise: on a le même comportement que les opérateurs sur les types natifs.

  5. #5
    Membre confirmé Avatar de babar63
    Homme Profil pro
    Développeur jeux vidéos/3d Temps réel
    Inscrit en
    Septembre 2005
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur jeux vidéos/3d Temps réel

    Informations forums :
    Inscription : Septembre 2005
    Messages : 241
    Par défaut
    Si c'est par principe alors...
    en tout cas merci pour ton aide

  6. #6
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Par défaut
    Ca te permet de faire machin -= (truc -= bidule) :d.

  7. #7
    Membre confirmé Avatar de babar63
    Homme Profil pro
    Développeur jeux vidéos/3d Temps réel
    Inscrit en
    Septembre 2005
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur jeux vidéos/3d Temps réel

    Informations forums :
    Inscription : Septembre 2005
    Messages : 241
    Par défaut
    Oui en effet merci Bakura j'avoue ne pas y avoir pensé

  8. #8
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Citation Envoyé par Bakura Voir le message
    Ca te permet de faire machin -= (truc -= bidule) :d.

    Effectivement, cela permet cette écriture.

    Mais cette écriture à le mérite de devenir incompréhensible au bout de quelques temps ou pour un autre lecteur.

    Personnellement je respecte la règle "1 ligne = 1 instruction", je fait cela en plusieur lignes :

    truc -= bidule;
    machin -= truc;

    et je laise l'optimiseur faire son boulot

    Raymond
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  9. #9
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Par défaut
    Oui oui bien sûr que ça rend le code incompréhensible. Mais c'est juste pour pouvoir faire comme les types primitifs qui autorisent cette écriture peu claire.

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

Discussions similaires

  1. Variadic template et non-type parameter
    Par ctxnop dans le forum Langage
    Réponses: 6
    Dernier message: 15/05/2014, 12h53
  2. [2.x] Mail avec template twig non trouvé
    Par KLeMiX dans le forum Symfony
    Réponses: 1
    Dernier message: 16/04/2013, 00h12
  3. Templates : spécialisations non reconnues
    Par Steph_ng8 dans le forum Langage
    Réponses: 8
    Dernier message: 03/11/2011, 13h30
  4. Réponses: 3
    Dernier message: 09/04/2009, 11h30
  5. Réponses: 2
    Dernier message: 12/09/2007, 18h11

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