CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Question de prog. C++

laliloulila
laliloulila
Niveau 7
07 juillet 2012 à 23:52:27

Voilà j'aimerais juste un avis et vous allez trouver ça idiot mais pour le jeu 2d que je programme en c++ je ne fais pas de surcharge opérateurs.

j'utilise des accesseurs ou des fonctions basique quand je veux faire le calcul entre 2 objets d'une même classe.

Je voulais savoir si c'était pas une mauvaise chose de pas prendre le temps d'en faire et aussi je ne fais un constructeur de copie uniquement quand je fais une allocations dynamique dans les méthodes de class et pareil pour le destructeur.

Alors vous vous faites forcément les destructeur, constructeur de copie ou alors uniquement quand c'est nessaire ?

caelacanthe
caelacanthe
Niveau 10
08 juillet 2012 à 01:15:05

"Alors vous vous faites forcément les destructeur, constructeur de copie ou alors uniquement quand c'est nessaire ?"

:d) uniquement quand j'en ai besoin, si la communauté des programmeurs a inventé un terme pour désigner le fait de ne pas écrire de code inutile ("you don't need it yet"), c'est très certainement parce que c'est important. :(

"mais pour le jeu 2d que je programme en c++ je ne fais pas de surcharge opérateurs. "

:d) cela m'intéresse aussi d'avoir un avis sur l'importance des opérateurs, n'étant absolument pas à l'aise avec la surcharge d'opérateurs, je préfère aussi créer des fonctions. la joie de manipuler des vecteurs avec des fonctions add(), mul(), etc :hap:

godrik
godrik
Niveau 30
08 juillet 2012 à 02:18:11

La surcharge d'operateur en C++ n'est typiquement pas utile. ca sert juste pour pouvoir abstraire des fonctions qui fonctionne typiquement sur un type primitif (int, float) et reutiliser les memes pour un type structure.

Par exemple, si tu as une fonction "derive" qui calcule le nombre derive de la fonction f en x:
float derive (float f(*)(float), float x) {return f(x+1)-f(x);}
tu peux reutiliser la meme fonction avec un autre type (peut etre un nombre Complexe) snas avoir besoin de reecrire la fonction. Mais alors, tu as besoin d'avoir l'operateur - de surcharge.

laliloulila
laliloulila
Niveau 7
08 juillet 2012 à 08:09:50

Merci pour vos réponses

Aldebran
Aldebran
Niveau 10
08 juillet 2012 à 11:44:09

"Alors vous vous faites forcément les destructeur, constructeur de copie ou alors uniquement quand c'est nessaire ?"

Jette un coup d'oeil à ce lien, ça explique quand il est utile de mettre tout ça :

http://cpp.developpez.com/faq/cpp/?page=classes#CLASS_forme_canonique

"uniquement quand j'en ai besoin, si la communauté des programmeurs a inventé un terme pour désigner le fait de ne pas écrire de code inutile ("you don't need it yet"), c'est très certainement parce que c'est important."

C'est un style de programmation comme un autre. Personnellement je n'implémente jamais un gros truc si je n'en ai pas vraiment besoin. Par contre, ça m'arrive de programmer des petites fonctions utilitaires (pas plus de quelques lignes) pas utiles dans l'instant, mais pouvant être utile à celui qui peut être amené à reprendre mon code et pouvant lui éviter de fouiller dans le code de mes classes. Personnellement je perd du temps à le faire (uniquement si je n'ai jamais besoin de cette fonction par la suite), mais je sais que j'en fait possiblement gagner à un autre.

laliloulila
laliloulila
Niveau 7
08 juillet 2012 à 13:01:10

Super intéressant ton lien !

LGV
LGV
Niveau 28
09 juillet 2012 à 13:32:15

Perso je mets TOUJOURS la forme canonique ; c'est une garantie pour le code client qu'on a pense aux cas d'utilisation de base, et qu'on interdit eventuellement ce qui n'est pas gere proprement

godrik
godrik
Niveau 30
09 juillet 2012 à 18:36:07

J'essaye aussi souvent de respected la forme canonique. Au minimum, je met les fonctino non supporte en prive pour eviter de tout casser.

Notons qu'avec le support croissant de C++11, fournir un move-constructor et move-operator peut devenir important pour les perf.

je vois dans le lien de aldebran que la forme canonique contient une implementation de swap. Je n'utilise jamais cette fonction. C'est courament utilise?

Paulop
Paulop
Niveau 12
09 juillet 2012 à 19:57:35

Je l'utilise sur un vector, je le swap avec un vector local pour libérer de la mémoire, quand tu clear un vector il ne desalloue pas ce qui a été alloué, si tu le swap, le vector local est détruit dès que ta fonction est terminée et hop.

Aldebran
Aldebran
Niveau 10
09 juillet 2012 à 21:08:53

"je vois dans le lien de aldebran que la forme canonique contient une implementation de swap. Je n'utilise jamais cette fonction. C'est courament utilise?"

Personnellement j'essaye aussi de toujours utiliser la forme canonique, mais j'avoue que je n'utilise jamais le swap.
L'utilisation de Paulop est pas idiote, j'essaierais d'y penser la prochaine fois que je coderais en C++.

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment