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 :

optimisation, classes et operateurs


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    �tudiant
    Inscrit en
    Juin 2012
    Messages
    25
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 25
    Par d�faut optimisation, classes et operateurs
    Hello!

    J'ai fais une petite classe de Vecteurs3D. Elle a comme attributs prives un tableau de type vector de nom coord
    l'une des m�thodes que j'ai fais calcule le produit vectoriel de deux vecteurs. J'ai fais une nouvelle instance puis initialis� ses
    valeurs mais cela pose un soucis lorsque je veux faire la surcharge d'opertateur* en effet, cr�er � chaque fois un tableau n'est pas une tr�s bonne id�e...

    j'esp�re que vous pourrez m'aider, car je ne suis pas convaincu de mon bricolage. De plus, il m'est conseiller d��viter les setters donc j'imagine qu'il existe une solution.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Vecteurs3D Vecteurs3D::prod_vec(Vecteurs3D const vec)const
    {
        Vecteurs3D resultat;
        resultat.set_coord(0, (coord[1]* vec.coord[2]) - (coord[2]*vec.coord[1]));
        resultat.set_coord(1, (coord[2]* vec.coord[0]) - (coord[0]*vec.coord[2]));
        resultat.set_coord(2, (coord[0]* vec.coord[1]) - (coord[1]*vec.coord[0]));
        return resultat;
    }
    Merci d'avance!

  2. #2
    R�dacteur/Mod�rateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : Canada

    Informations professionnelles :
    Activit� : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par d�faut
    Salut,

    tu es dans une fonction membre, pourquoi utiliser set_coord et non directement coord ?
    Tu passes ton param�tre par copie, utilise une r�f�rence. Dommage t'avais d�j� pens� au const en plus. ^^
    Si tu dois faire 3 op�rations, tu pourras difficilement faire mieux. Sauf � utiliser des intrinsics et SIMD.
    Pensez � consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation r�seau ?
    Aucune aide via MP ne sera dispens�e. Merci d'utiliser les forums pr�vus � cet effet.

  3. #3
    Membre actif
    Homme Profil pro
    �tudiant
    Inscrit en
    Juin 2012
    Messages
    25
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 25
    Par d�faut
    oui juste! J'y avais pas pens� je vais faire �a alors. Merci

  4. #4
    Membre actif
    Homme Profil pro
    �tudiant
    Inscrit en
    Juin 2012
    Messages
    25
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 25
    Par d�faut
    Accessoirement, lors de la surcharge d'op�rateur, comment diff�rencier le produit vectoriel et le produit scalaire de vecteurs?
    voici mon prototype de produit scalaire:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    const Vecteurs3D operator*(Vecteurs3D, Vecteurs3D const&);
    et sa definition:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    const Vecteurs3D operator*(Vecteurs3D v1, Vecteurs3D const& v2)
    {
        v1*=v2;
        return v1;
    }

  5. #5
    Expert confirm�

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 033
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activit� : Software Developer
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 033
    Billets dans le blog
    12
    Par d�faut
    Salut!
    Pour les vecteurs/points, je n'ai pas impl�ment� l'op�rateur de multiplication avec un autre vecteur.
    J'ai impl�ment� 2 fonctions libres: cross et dot.
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert � rien, mais qu'il est joli (des fois) : ProceduralGenerator (G�n�ration proc�durale d'images, et post-processing).

  6. #6
    Expert confirm�
    Homme Profil pro
    Ing�nieur d�veloppement mat�riel �lectronique
    Inscrit en
    D�cembre 2015
    Messages
    1 599
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 62
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement mat�riel �lectronique
    Secteur : High Tech - �lectronique et micro-�lectronique

    Informations forums :
    Inscription : D�cembre 2015
    Messages : 1 599
    Par d�faut
    Bonjour,
    On ne peut distinguer les operations par leur type de retour. La d�finition de l'operateur^() pourrait fournir un produit vectoriel et operateur*() pour le produit scalaire, mais l'utilisation de fonction comme indiqu� par dragonjoker59 est beaucoup moins opaque.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Optimisation de surcharge d'operateurs de class
    Par shadowsam dans le forum G�n�ral Python
    R�ponses: 2
    Dernier message: 05/03/2009, 09h59
  2. [POO] classe vect operateur []
    Par chris_013 dans le forum C++
    R�ponses: 2
    Dernier message: 15/10/2008, 13h26
  3. [debutant] Utilisation de l'operateur = dans une classe
    Par Battosaiii dans le forum D�buter
    R�ponses: 8
    Dernier message: 10/11/2005, 23h01
  4. Optimisation PHP4 lorsque l'on utilise presque des classes
    Par ouioui2000 dans le forum Langage
    R�ponses: 2
    Dernier message: 11/10/2005, 17h05
  5. [Surcharge]Operateur<< avec une classe maison
    Par KeNnEdY dans le forum C++
    R�ponses: 6
    Dernier message: 14/09/2005, 15h51

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