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

[c++]Passer type d'objet et type d'argu

tbop2
tbop2
Niveau 10
06 octobre 2012 à 21:37:16

Moi je dois avouer que je viens de me prendre une grosse claque sur les templates là.
Je dois m'avouer absolument incapable de comprendre ce qu'il se passe dans ton dernier exemple. Bon ça a l'air d'utiliser des trucs de C++11 et je ne suis pas trop upgradé à tous les tenants et aboutissants donc ça ne m'aide pas non plus (en fait si je croyais mais bon...).

De toute évidence tu maitrises sérieusement les templates, le C++11 et le C++ en général, et pour cela tu as mon respect Spartacus. :ok:

chris_27
chris_27
Niveau 10
06 octobre 2012 à 21:58:37

Commence par remettre en cause ta propre médiocrité avant de t'en prendre à moi, gamin !

Ton code pour additionner des nombres ne nous montre qu'une chose :tu adores la branlette technique. Je te suggère soit de passer au stade "prise de recul", soit d'arrêter la programmation./

godrik
godrik
Niveau 30
07 octobre 2012 à 00:04:33

Ce que je n'aime pas dans ton accumulate c'est que ca ne fait que de la somme de membre, rien d'autre. Pas de somme de positif. Pas de somme de carre, rien que de la somme de membre. Ce qui le rends tres complexe pour quelquechose de moderement utile.

Je n'ai rien contre de la complexite si ca sert a quelquechose. Ici, ca ne sert a rien, c'est juste complexe.

hyrulink2
hyrulink2
Niveau 7
07 octobre 2012 à 19:04:41

Chris, le "gamin" t'em*erde profondément. Tu est quelqu'un de hautain et désagréable. Tu te permet de me juger comme quelqu'un de médiocre alors que tu n'a jamais travaillé avec moi(encore heureux) et tu te bases sur des exemples jouets.

godrik a fait des critiques et j'accepte ses critiques car il a des arguments, toi c'est juste pour le plaisir de critiquer quelqu'un parce qu'il n'a pas la même façon de coder que toi et tu es assez narcissique pour considérer ça comme de la médiocrité.

Le pire dans tout ça c'est tu est prof, je plains tes étudiant qui doivent endurer quelqu'un d'aussi fermé d'esprit que toi. C'est franchement dommage qu'un con*ard comme toi vienne polluer l'ambiance ici, comme dans ce thread ou quelqu'un demande des conseils pour son plus ou moins et toi tu l'envoie chier comme une merde au lieu de l'aider.

Eauquai
Eauquai
Niveau 9
07 octobre 2012 à 23:05:53

Le débat s'est quelque peu déplacé il me semble^^.
En dehors des disputes, je dois dire qu'après le milieu de la première page je n'ai plus compris grand chose au jargon technique concernant la programmation.

Je tiens néanmoins à dire que je suis d'accord avec Hyrulink sur une chose, c'est l'ambiance ici. Je constate, à chaque fois que je viens, que ça se tire dans les pattes à tout bout de champ... C'est dommage parce que je suis certain qu'au-delà de ça vous êtes tous de bon conseil et prêts à aider les autres (moyennant quelques critiques acerbes parfois, mais ça fait partie du jeu^^).

tbop2
tbop2
Niveau 10
08 octobre 2012 à 11:47:02

Mon dieu que d'insultes irreparables sur ce thread pour une question bien innofensive. C'est bien dommage. c'est bien dommage.

Moi je dis que de toute facon il est toujours dommage de donner une reponse bien compliquee a quelqu'un qui n'est pas vraiment capable d'expliquer les tenants et les aboutissants de sa requete. Je reste assez intimement persuade que l'OP n'a pose la question que par pure flemme et par mauvaise assimilation du principe d'encapsulation et du paradigme POO. C'est mon opinion personnelle, je pense que tout le monde aurait du s'assurer de la bonne description du probleme et de ses vrais interets avant de repondre quoi que ce soit (insultes, sarcasmes, templates imbuvables, etc.).

Eauquai
Eauquai
Niveau 9
08 octobre 2012 à 12:19:20

Je peux encore une fois essayer de t'expliquer mon problème si tu y tiens !

Si tu veux tous les détails, c'est un projet avec la SDL.

J'ai une classe Personnage, qui possède plusieurs attributs comme age, taille, poids, origine, intelligence, ... Il y a je dirais une vingtaine d'attributs.

À ce moment, j'ai déjà un moyen "propre" de récupérer les valeurs de ces attributs privés : les getters.

Sauf que si je veux afficher, disons, l'âge, la taille et le poids d'une personne, je dois écrire :
getAge();
getTaille();
getPoids();

Et puis si deux minutes après je décide d'afficher plutôt l'origine, la beauté et le charme de la personne, alors je dois effacer ces lignes et en récrire trois autres.

Bref on voit tout de suite qu'il y a plus pratique. Ce que je faisais jusqu'ici, c'est que je créais un booléen pour chaque attribut, par exemple aff_taille, puis une fonction afficher() du style :
void afficher(){
if(aff_taille)afficher_sur_la_surface_SDL(getTaill
e());

.
.
.
if(aff_poids)afficher_sur_la_surface_SDL(getPoids(
));

}

Je trouve que cette solution n'est pas élégante : si demain je décide de rajouter de nouveaux attributs à la classe Personnage, je devrais rajouter autant de nouvelles lignes à toutes les fonctions d'affichage.

En fait, pour généraliser, je me suis dit qu'il serait tellement plus pratique de posséder une manière de donner à une fonction d'affichage :
- Un objet
- Un attribut de cet objet
Sans spécifier dans la définition QUEL objet ni QUEL attribut. Ainsi pour la maintenance, je m'en lave les mains (à part dans les cas - ultras rares dans mon projet - où le type de l'attribut doit être géré d'une manière exceptionnelle par la fonction d'affichage sur la surface SDL.

Et du coup dans mon programme, si je décide d'afficher l'age et l'odeur de la personne anne, je ferais appel à ma fonction (celle que je désirais et pour laquelle j'ai créé ce post) :

afficher(anne, &anne::age, &anne::odeur);

Voilà, maintenant je ne suis pas du tout programmeur, peut-être que tout ça est débile, je ne prétend pas du tout en savoir plus que quiconque ici^^ Je cherchais un moyen de faire ce que je voulais, et j'ai trouvé. Peut-être que la solution qui m'a été proposée est dégeulasse, j'en sais rien, mais elle est efficace en tout cas. Parce qu'elle marche comme je le désirais et c'est un fait. Et puis, même pour plus tard, qui sait, un jour je serais confronté à un cas où ce genre de solutions est réellement indispensable ?

tbop2
tbop2
Niveau 10
08 octobre 2012 à 12:36:09

Oui je comprends ton probleme, mais je peux t'assurer que ton probleme est chelou pour deux choses :

1) Il implique un peu de flemme evidemment, c'est un fait a ce stade du projet le probleme est difficilement reductible a autre chose que : faire un nouveau getter, updater ta methode.
2) Si vraiment ton code est SI dynamique dans ta vie pour avoir besoin d'une solution plus simple pour stocker des attributs alors il y a une solution un peu plus elegante tres simple. Une classe Attribut templatee qui stocke le nom d'un attribut dans un string et l'attribut lui-meme. (et si vraiment tu y tiens ton tres bizarre booleen chelou mais ce truc me titille a priori).

Apres tu n'as plus qu'a parser ton tableau d'attributs qui est contenu dans ta classe Personnage. C'est quand meme bien plus lisible et maintenable et joli (a mon sens), je laisse le debat tout a fait ouvert de ce cote.

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