objectif réutilisation maximale [défi de la semaine] - C++ - Programmation
Marsh Posté le 08-12-2003 à 23:57:51
Code :
|
j'ai bon?
Marsh Posté le 09-12-2003 à 00:01:24
bah commme je dis à ffluff qui a vite converger vers là : c'est le principe de la solution (et la version const bordel ), après y a l'art et la manière de le faire, j'entends par là quelque chose de beau en template.
Marsh Posté le 09-12-2003 à 00:04:48
maintenant faut la façon joulie et TAZ compilant
Marsh Posté le 09-12-2003 à 00:05:43
je suis pas la pour faire du beau, mais pour torcher ton défi en 30s, bonne nuit
Marsh Posté le 09-12-2003 à 00:05:58
et un bon point à celui qui trouve un titre adéquate à la classe
Marsh Posté le 09-12-2003 à 00:07:21
Code :
|
je pense pas que c'est ce que Taz voulait mais j'ai trouvé la doc de operator -> plus vite que celle des opérateurs de casting.
Marsh Posté le 09-12-2003 à 00:32:53
honnêtement, je fais pas des exos pour vous. Cette fois-ci c'est plus facile, et hop ça roule des mécaniques, "J'ai la solution !". le but c'est de faire réfléchir les autres, leur apprendre des trucs, leur montrer des possiblités, leur donner le goût. là avec vos réponses, le mec il lit ma question, et direct le morceau de code, il cherche pas à comprendre. <Résolu>
c'était moins glorieux quand je demandais la définition d'un tableau. si vous voulez du boulot, moi je vous propose au choix : switch template ou alors carrément un mini-LISP. y a moyen de trouver beaucoup plus compliqué. je veux faire des sujets d'apprentissage, pas des démos rodéos.
conclusion :
utilité de ce sujet ~= 0
Marsh Posté le 09-12-2003 à 00:39:46
Taz a écrit : honnêtement, je fais pas des exos pour vous. Cette fois-ci c'est plus facile, et hop ça roule des mécaniques, "J'ai la solution !". le but c'est de faire réfléchir les autres, leur apprendre des trucs, leur montrer des possiblités, leur donner le goût. là avec vos réponses, le mec il lit ma question, et direct le morceau de code, il cherche pas à comprendre. <Résolu> |
bah non l'utilité y est pour ceux qui on envies de réfléchir.
Les faignants attendront de le lire la soluce. Et les autres qu'il y ai la soluce ou pas ils chercheront.
Mais c'est vrai que ceux qui sont entre les 2 ca leurs donne pas envies de chercher.
Marsh Posté le 09-12-2003 à 00:48:23
Fanchement, je préfère réfléchir à des trucs intelligents qu'à des problèmes purement techniques de langage.
Marsh Posté le 09-12-2003 à 00:50:33
nraynaud a écrit : Fanchement, je préfère réfléchir à des trucs intelligents qu'à des problèmes purement techniques de langage. |
certes. la solution C++ est assez facile, mais la technique template amène une petite réflexion.
Marsh Posté le 09-12-2003 à 16:37:37
(je réfléchis, mais je trouve pas, comme le dernier ...)
Marsh Posté le 09-12-2003 à 17:41:03
j'essaie de faire un template comme classe mere de MyType avec deduction du type du fils (MyType ici) mais j'y arrive pas, qq1 peut me dire de suite si je fais fausse route ?
Marsh Posté le 09-12-2003 à 19:25:09
je ne suis arrivé qu'à faire ca :
Code :
|
pour la déduction du paramètre template j'y arrive toujours pas
Marsh Posté le 09-12-2003 à 19:26:31
benco ! sauf les const qui foirent
Accesseur bof, je préfère "HereAndThere"
Marsh Posté le 09-12-2003 à 19:27:24
Code :
|
Marsh Posté le 09-12-2003 à 20:26:49
ah, ya pas de déduction possible ?? bin je pouvais tjs chercher
n'empeche ... ya qq mois je comprenais pas un mot sur 2 de ce que Taz disait, maintenant j'arrive parfois a trouver des solutions je vais relire les tut tiens, j'avais abandonné j'y comprenais rien
en tout cas merci, c grace a l'aide, et aux articles (et exercices) trouvés ici que j'ai progressé, merci
Marsh Posté le 11-12-2003 à 21:59:10
Salut a tous ..
Je viens d'arriver dans le coin prog et ca me parait prometteur.
BlackGoddess .. quand tu parles de tuts, il y en a sur HFR ?
Marsh Posté le 15-12-2003 à 00:56:42
Taz et JoelF en avaient écrit oui:
http://forum.hardware.fr/forum2.ph [...] subcat=386
Marsh Posté le 16-12-2003 à 13:15:08
plus de défi cette semaine ?
Marsh Posté le 20-12-2003 à 12:43:30
non, mais on va enrichir votre culture générale.
Le véritable truc marrant ici, c'est le motif CRTP (Curiously Reccurring Template Pattern) (je crois que Coplien qui le premier a joué avec).
Dans notre programme, il apparait sous cette forme
Code :
|
Plus formellement, ce motif de conception est défini comme suit
Code :
|
d'ailleurs, si on utilise que la dernière forme, on eput carrément écrire
Code :
|
Alors à quoi tout ça sert-il ? À plein de petites choses que l'on peut faire sans refonte massive. Comme dans notre exemple.
Allez, c'est Noël !
Code :
|
Marsh Posté le 20-12-2003 à 15:12:12
Faut vraiment que je trouve un bouquin genre C++ pour les nuls ...
Je suis sûr de passer à coté de beaucoup de choses intéressantes avec les templates & co ...
Ou bien suis peut-être trop vieux ;-(
Marsh Posté le 20-12-2003 à 15:21:24
ReplyMarsh Posté le 20-12-2003 à 19:14:05
vi, enfin je citai ça pour dire ...
Perso j'ai appris le c grace à un petit stage d'une semaine, c'est très short, maintenant je programme par plaisir, je me suis mis un peu au C++ y a pas bien logtemps, et j'ai eu un peu de mal à mon age ;-) mais je ne le regrette pas, j'aurai dû mal à revenir au c.
Maintenant j'estime "faire" du C++ à 10% quand je lis ça et les "tutoriaux" que tu as fait avec Joël je crois ...
J'ai encore énormément à apprendre et certaines parties comme les templates, les exceptions, les cast static, dynamiques, ...
Et bien j'ai beaucoup de mal ...
Mais bon, j'arrête là, j'irai à mon rythme
Marsh Posté le 01-01-2004 à 02:13:28
Bonsoir,
Ah! C'etait une blague
Ca fait un bon moment que je programme en objet sous C/C++ voire un peu sous Java. Cela dit, je ne comprends quasiment rien à tes programmes Taz. Ce genre de programmation s'appuie me semble-t-il sur des ecritures et concepts du C++ assez subtiles (c'est peu de le dire)
Par pure curiosité intellectuelle, j'apprécie beaucoup ce post
Au passage, c'est surement pas dans le "C++ pour les boulays" qu'on trouve ce genre de programmation, si oui je me prive de dessert pendant 2 jours.
Cordialement,
Xter.
Marsh Posté le 01-01-2004 à 16:13:24
1) c'est pas subtile, c'est le C++. sinon c'est le C
2) le C++ pour les boolays, c'est du C
3) ne pas profiter de toutes les fonctionnalités du C++ c'est se pénaliser soi-même
Marsh Posté le 01-01-2004 à 18:57:13
taz,
Je modèrerais tes propos, car on ne doit pas avoir la même définition du C++ et surtout de la programmation objet en général. Bien que nos divergences n'ont aucune réelle importance, je me permets de me justifier.
Mon avis est que le C++ offre la possibilité de faire de la programmation orientée objet (comme beaucoup d'autres langages par exemple java, il y en a bcp d'autres évidement), et tout cela, sans nécessairement installer la fameuse librairie STL. Quant au ré-use, STL n'est certainement pas indispensable, la POO définit les concepts de base qui sont directement applicables à l'aide d'un simple compilateur C++.
Cela dit, STL apporte des éléments et surtout un mode de programmation permetant d'aller plus loin dans la POO et d'ecrire du code C++ d'une manière plus séduisante (sans aucun doute à ce que je vois et cela m'interesse beaucoup).
Enfin, j'ai tout à apprendre concernant la STL, mais il ne faut tout de même pas "dépendre" de cette librairie pour pouvoir faire de la POO.
Cordialement,
Xter.
-edit-
PS: Bon ok, ok, je me prive de dessert jusqu'au WE. De toute manière faut que j'arrete, j'ai trop mangé avec ces fêtes ++
Marsh Posté le 01-01-2004 à 18:58:33
si tu vires la couche objet du C++ il reste vraiment plus grand chose.
je crois que tu manques un peu d'expérience
Marsh Posté le 01-01-2004 à 19:01:33
La couche objet de C++ n'est pas la librairie STL... comprend pas ce que tu veux dire...
Xter.
Marsh Posté le 08-12-2003 à 23:00:47
on va pas discuter de l'intéret de la réutilisation ... mais on va la mettre en pratique.
Mise en situation : vous avez votre type MyType et std::map<std::string, MyType*> alias ReferenceMap. Tout marche très bien, vous avez écrit des algorithmes fonctionnels. Maintenant, vous éprouvez le besoin d'utiliser des std::map<std::string, MyType> ou ContainerMap. Le problème est donc d'arriver à cela avec le minimum de travail.
Donc ce soir votre défi est simple à comprendre, très astucieux à mettre ne place
quelques include nécessaires.
est votre type de base
vos conteneurs. pas touche aux typedef
votre algorithme, c'est le seul morceau de code que vous n'avez pas le droit de modifier.
votre main de test
vous pouvez tout modifier sauf la fonction doSomething et les typdefs.
bien entendu, tout n'est pas possible, une valeur et un pointeur sont incompatibles, ici, le travail c'est d'arriver à creer une interface pour permettre des manipulations similaires (je demande pas plus que ce qui est faisable dans la fonction)
si vous avez des questions, je suis là.
Message édité par Taz le 08-12-2003 à 23:53:38