TutorielsVous débutez ? C'est ici qu'on commence !
Mon compte
Recherche
Livre d'or
PublicitéVous devez être inscrit pour pouvoir poster des messages
| Page : 1 | |
| Pseudo | Commentaire |
|---|---|
| Page : 1 | |
TheDead Master
|
# Posté le 15/09/2007 17:17:56 |
4 8 15 16 23 42![]() Groupe : Membres |
Il y a une petite erreur : Citation : M@teo C'est une peu choquant au début C'est dans "La dérivation de type". Sinon, ben comme d'hab, très bon tuto
Mon moteur de template : SimpleTemplate Comité de lutte contre le langage sms et les fautes volontaires sur Internet. |
M@teo21
|
# Posté le 15/09/2007 17:28:55 |
Doh ! Nuts. Mmh, donuts !![]() ![]() |
Corrigé merci.
<tuto etat="redaction" mode="venere" target="c++" /> Ce qui se conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément. Nicolas Boileau (je suis fan) Autobiographe à ses heures perdues ![]() |
hugo125
|
# Posté le 15/09/2007 17:58:28 |
|
Pourquoi faire simple ? Groupe : Membres |
Super tuto, comm' d'hab. Bravo. Vivement Qt !!! |
wado
|
# Posté le 15/09/2007 18:14:56 |
|
Groupe : Membres |
Bravo pour la réalisation de ce tutorial. 20/20 En ce qui concerne l'impression de ce tutorial, il n'imprime pas tes schémas ??? |
Alp
|
# Posté le 15/09/2007 19:48:20 |
|
Groupe : Membres |
Je trouve anormal que tu ne parles pas dans le même tuto de la virtualité, le polymorphisme --- ne serait-ce que ça, quitte à attendre un peu plus pour publier. Bref, pour le reste, c'est bien expliqué, oui. |
shadosan
|
# Posté le 15/09/2007 20:48:04 |
Oyé oyé, j'ai posté.![]() Groupe : Membres |
très sympa ![]() je connaissait pas la redéfinition de méthodes / classes, mais tout le reste n'était pour moi que de la révision (de ce que j'ai appris de Java!). ![]() 18/20, car je suis d'accord avec le fait qu'il manque la virtualisation (que j'ai appris sur un article wiki assez expéditif, je trouve). Mais quand même, c'est assez clair
Tutoriel en cours de rédaction : Rpg Maker XP : Maîtriser les évènements Projets:[QT + C++] Openpad, un éditeur de texte avancé : 100% v1.3 |~| [QT + C++] Open maker, un rpg maker se rapprochant de Rpg Maker XP : 5% |~| [C++] Mazen, un générateur de donjons et/ou labyrinthes : 100% >> The daily WTF << Pas de retour à la ligne? AAAaaaaa! |
pamaury
|
# Posté le 15/09/2007 22:27:41 |
|
Groupe : Membres |
Est-ce vraiment nécessaire de mettre tout dans le même tuto ? Si on commence à parler de la virtualisation, il faut parler des méthodes virtuelles, virtuelles pures, de l'héritage virtuel, des classes abstraites ?! Pour quelqu'un qui vient juste d'apprendre l'héritage c'est peut-être un peu trop violent,non ?. Enfin je sais pas, j'expose juste un avis. D'un autre coté, c'est vrai que l'héritage sans la notion de "virtualisation" limite un peu les choses... |
Alp
|
# Posté le 15/09/2007 23:04:28 |
|
Groupe : Membres |
Ce qui m'embête dans ce que tu dis, c'est que l'on a pas appris l'héritage quand on ne connaît pas l'héritage multiple et la virtualité, principalement. On a juste appris une nouveauté dans la syntaxe. Mais pas du tout comment on s'en sert généralement. Et puis si je ne m'abuse, il n'y a rien sur l'héritage privé, composition VS héritage, tout ça. Ca a beau être un document fait pour des "zéros", il faut qu'il soit correct et logique. Il compte mettre quoi quand il parlera de virtualité : "Approfondissement de l'héritage" ? Non! L'héritage c'est surtout la virtualité, l'héritage multiple (présent dans peu de langages en tant que tel) ! |
Lutinbleu
|
# Posté le 15/09/2007 23:18:17 |
|
"Cedant arma togae", Cicéron Groupe : Membres |
Très très bon tuto que j'attendais avec impatience et par lequel je ne suis pas déçu. Super boulot.
Lutinbleu, mais pourquoi ont-ils tué MS-DOS ? |
mystwarrior
|
# Posté le 16/09/2007 00:04:17 |
![]() Groupe : Membres |
Citation : M@teo21 Dans la classe Personnage, vous pouvez réécrire la méthode coupDePoing (avec le même prototype). Cette méthode possédant le même prototype, elle va écraser la méthode coupDePoing du Personnage. C'est elle qui va avoir la priorité et que le compilateur va appeler quand on créera un Guerrier. Il y a une petite faute dans la redéfinition de méthode, c'est dans la classe Guerrier que l'on peut réécrire la méthode coup de poing .Sinon tout le reste du tuto, nikel
Finaliste de prologin 2007 42 > epitech > epita > supinfo ![]() La preuve => ICI TEK2 Specialiste : C C++ SDL et derives OPENGL GTK QT X11 Unix xHTML PHP SQL AJAX JAVASCRIPT ... (si si tek powaa ) |
lmghs
|
# Posté le 16/09/2007 02:27:37 |
|
Groupe : Membres |
"virtualisation" ...? Tiens, c'est nouveau en C++ ça :-/ De plus, ne confondez pas le moyen d'obtenir la redéfinition et donc le polymorphisme (d'inclusion comme on dit), et les héritages virtuels. Ce sont deux choses différentes. Mais passons. Pour l'héritage multiple, les classes abstraite, etc., il y a encore un peu de temps (contrairement à la redéfinition -- cf mes commentaires plus bas) M@teo21. Comme d'hab, je commente en vrac. Très très bien de parler de l'héritage en termes de "est-un" et non en termes de "réutilisation"! Merci. (si, si, j'insiste!) <pinaillage> Petit bémol pour ceux qui me lirait. La notion de "est-un" dans le monde OO, et parfois à des années lumières de ce que notre intuition nous dicte. Exemple typique: en maths, un carré est un rectangle. En OO, c'est faux et archi-faux. La notion maitresse derrière le est-un est la subtituabilité. On va hériter (publiquement) quand un objet d'un type fils peut toujours être utilisé en place d'un objet du type parent. </> Bien pour l'exemple RPG (plutôt que des trucs fumeux rarement bien modélisés). Cependant ce modèle est très limité : il ne permet pas le multiclassage. En général, je préfère mettre l'accent sur le distingo PJ/PNJ. Le truc qui contrôle dans un cas est un joueur, dans l'autre une IA. Et on peut même aller plus loin en définissant des sorts qui donnent le contrôle d'une entité, à une autre (p.ex. sorts de possession, charme personne, ...). Arg. Je retire ce que j'ai dit pour la réutilisation Citation : M@teo21 En C++, on utilise tellement de classes que bien souvent ça ne sert à rien de recréer une classe depuis le début, il vaut mieux hériter d'une classe plus "générale" pour éviter d'avoir à réécrire le même code 50 fois :-(Citation : M@atheo21 Vous verrez dans la prochaine partie sur la librairie C++ Qt qu'il y a souvent 5 ou 6 héritages qui sont faits à la suite. C'est vous dire si c'est utilisé ! Hum ... un arbre d'héritage qui se perd en profondeur est très généralement (et Dieu sait que j'ai envie de dire "toujours") un signe de design médiocre. Ce que tu appelles "redéfinition" est en fait une surcharge (overloading) (les deux fonctions membre coexistent) et nullement une redéfinition (overriding) . Pour que l'on parle de redéfinition il aurait fallu que la fonction membre soit virtuelle. Ce qui n'est pas le cas ici. Sans le "virtuel", je sens déjà venir les débutants sur le forum demander pourquoi la bonne fonction n'est pas appelée quand on passe par un pointeur du type parent alors que cela marche avec le type officiel. Citation : M@atheo21 On peut affecter un objet fille à un pointeur ou une référence d'un objet mère Pas "affecter" (comme dans Personnage::opérator=), mais substituer Et effectivement, pointeurs ou références sont nécessaires. D'ailleurs il manque des "*" dans le diagramme qui suit. Hé hé. Je mets toujours "privé" par défaut. Même quand je sais que la classe sera héritée. Et quand je n'ai pas le temps de faire propre, je mets un petit coup de protected ni vu ni connu. Pour le QCM, parler de "surdéfinition" est vicieux. Entre certains auteurs qui l'utilisent en place de "surcharge" et certains gurus qui pesent que cela veut dire redéfinition (tellement il est évident que overloading se traduit par surcharge) ... Non vraiment, c'est vicieux. Conclusion. Bonne impression dans l'ensemble. Mais des questions seront soulevées par les 0 suite à l'"oubli" (je me doute bien que c'est un choix) de traiter le virtual. Sans parler des quiproquos à parler de redéfinition (ce qui chez les initiés rime avec "supplantation (de fonction)" et virtual), là où il ne s'agit que de surcharge. |
MatteX
|
# Posté le 16/09/2007 07:54:53 |
The cake is a lie!![]() Groupe : Membres |
J'aime bien la présentation générale du tuto! On reste dans un univers de Zér0 avec une épuration complète du flafla pour ne garder que le nécessaire. Sans entrer dans les détails du polymophisme (qui n'a effectivement pas à faire partie de ce tuto) j'aurais qu'en même intégré l'utilisation du mot clé "virtual" avec "la dérivation de type". J'espère que ce sera ajouté bientôt car comme Imghs l'a remarqué : il va y avoir des dizaines de questions sur le forum. Je suis certain que tu peux le faire simple, court et précis M@teo21
liens utiles: FAQ C++ (developpez.com) | GotAPI.com | H-Deb Mon futur ex-blog - Dernier Billet : 10 mars 2008 Propriétaire d'un Dell Inspiron 1720, Core 2 Duo 2.4Ghz, 3Go DDR2, 8600M GT 256Mo. Avec Blu-Ray! |
Lyrke
|
# Posté le 16/09/2007 10:07:32 |
love :)![]() Groupe : Membres |
Toujours aussi simple et génial tes tutos Sauf un endroit où tu as tort (à la fin où tu donnes la source complète) Citation : M@teo21 [...]il ne fait rien d'extraordinaire. Mais il compile[...] Le code ne compile pas car tu as oublié d'implémenter void frapperCommeUnSourdAvecUnMarteau(); dans Guerrier.cpp ![]() Sur ce, bonne chance pour la suite
|
UltimAKnighT
|
# Posté le 16/09/2007 13:13:02 |
|
Groupe : Membres |
Le cours est pas mauvais, cependant étant donné qu'il s'agit de l'avant dernier chapitre de cette partie et que le dernier traite des Elements statiques et constants, il manque beaucoup de choses. Ne serait-ce que le polymorphisme, des notions fondamentales de C++ (dont l'héritage multiple) qui serviront pas mal en programmation Qt. UltimAKnighT |
mysterix
|
# Posté le 16/09/2007 22:45:42 |
![]() Groupe : Membres |
C'est vrai que si on ne parle pas de polymorphisme, l'héritage ne sert pas à grand chose... A part ça le tuto est très clair et très agréable comme d'habitude ! Merci !
Envie d'énigmes tortueuses ? Alors à bientôt sur Mysterix ! Envie d'art sympa plutôt ? Alors allez voir ce que fait Emmanuel Harel ! |
_Yann_
|
# Posté le 17/09/2007 00:56:44 |
|
Groupe : Membres |
Je rejoins la plupart des commentaires en regrettant l'absence d'une partie sur les classes abstraite et les fonctions virtuelles, surtout avant de passer au chapitre sur Qt... Cela dit tu as peut-être prévu d'en parler lorsque tu rencontreras un exemple adéquat (comme Sheila... ). Sinon le tuto est clair, bravo et merci.
|
kabuto_fr
|
# Posté le 17/09/2007 02:41:58 |
![]() Groupe : Membres |
Salut, Je trouve ce chapitre excellent. Il introduit bien la notion d'héritage pour les debutants sans s'encombre de chose inutile a se stade. Aucun intérêt du polymorphisme ou de virtual pour le moment. A la fin de la lecture du chapitre les débutants peuvent parfaitement créer des class héritée d'autre class. Et commencer a s'amuser avec ça sans avoir besoin d'introduire des choses plus complexe. J'ai trouver une seul erreur: dans Avec l'héritage : la redéfinition de méthode Citation : M@teo Grâce à la redéfinition de méthode justement ! ![]() Dans la classe Personnage, vous pouvez réécrire la méthode coupDePoing (avec le même prototype). Cette méthode possédant le même prototype, elle va écraser la méthode coupDePoing du Personnage. C'est elle qui va avoir la priorité et que le compilateur va appeler quand on créera un Guerrier. il faut plutôt lire: Citation : correction Grâce à la redéfinition de méthode justement ! ![]() Dans la classe Guerrier, vous pouvez réécrire la méthode coupDePoing (avec le même prototype). Cette méthode possédant le même prototype, elle va écraser la méthode coupDePoing du Personnage. C'est elle qui va avoir la priorité et que le compilateur va appeler quand on créera un Guerrier. voila @+ La connaissance n'a d'intérêt que si elle est partagée. |
Nanoc
|
# Posté le 18/09/2007 17:15:43 |
Apprenez à utiliser la STL !!![]() Groupe : Membres |
Je déplace les remarques que j'avais fait sur le forum C++ ici, il y a peut-être redondance avec ce qui a déjà été dit et je m'en excuse. De manière générale en C++,on parle de fonction membre et pas de méthode. Le mot méthode est plutôt réservé aux fonctions virtuelles. Quand tu parles de redéfinition de fonction membre, tu pourrais ajouter qu'on parle aussi de "masquage" dans ce cas là. La fonction membre de la classe mère est masquée par celle de la classe fille. Dans le domaine il faudrait peut-être aussi préciser qu'on peut quand même appeler la fonction masquée de la classe mère en utilisant lôpérateur de résolution de portée :: Il y a aussi le lapsus relevé au-dessus par culte. Dans la partie sur la dérivation de type, peut-être serait-il bon de préciser que l'on peut utiliser un pointeur sur Personnage pour un Guerrier car justement Guerrier EST UN Personnage (et du même coup montrer que est un n'est pas que "heuristique") Dans la partie sur "protected" tu pasrles de "classe qui se font dériver" ne serait-il pas mieux d'introduire le terme consacrer et parler de dérivation de classe ? Je ne sais pas si c'est une bonn idée, mais ne serait-il pas intéressant aussi de parler des autres fomes d'héritage (héritage privé,protégé) ? Ce n'est sûrement pas essentiel mais comme on utilise le mot public pour la dérivation cela risque de susciter des questions. d'ailleurs voilà déjà un exemple de post de ce genre ----------------------------------------------- Sinon, de manière générale, je dirais que c'est bien présenté, clair pour un débutant et bien expliqué comme à ton habitude. Exercices de C++ pour tous les niveaux ! Mes projets en cours: Classe template de tableaux statiques avec interface STL Mes tutos: Tri de Shell --- [C++] Gestion des exceptions --- [C++] Manipulateurs de flux --- [C++] Les tableaux dynamiques avec std::vector (New) |
lmghs
|
# Posté le 19/09/2007 01:47:53 |
|
Groupe : Membres |
Citation : Nanoc Quand tu parles de redéfinition de fonction membre, tu pourrais ajouter qu'on parle aussi de "masquage" dans ce cas là. Le "aussi" est de trop. Il y surcharge (*) et non redéfinition. (*) qui avec une hiérarchie au milieu dégénère en masquage, mais c'est limite un détail qu'un débutant n'a pas forcément besoin de (sa/)voir. A la limite un simple conseil du style "Pour éviter de subtils effets de bord : ne surchargez pas des fonctions virtuelles, ne définissez pas plusieurs fonctions (sans "racine" virtuelle) avec même signature à divers niveaux d'une même hiérarchie ; plus de détails dans la FAQ c++lite §23.8" |
c-sharp
|
# Posté le 21/09/2007 15:20:04 |
le C/C++ j'en mange![]() Groupe : Bannis |
je trouve que ce tuto a un manque:
<ta Qu'est ce que vous regardez? |
PianoPâriss
|
# Posté le 06/12/2007 21:43:20 |
|
Mac Pro Bi-Xeon user Groupe : Membres |
Oula, ça m'a fait un paquet de lecture de me plonger dans le C++, j'hésitais mais les libs GUI m'ont convaincu ! Mais queqlues questions subsistent:
Merci pour le tuto
« La musique est l'aliment de l'amour. » [William Shakespeare] ![]() ![]() Piano©~1 |
Sednem
|
# Posté le 28/02/2008 22:40:01 |
IDOO un jour, IDOO toujours![]() Groupe : Membres |
Salut C'est moi ou la qualité graphique des schémas s'est ameliorée depuis les debuts du cours sur le C ??? sinon 20/20 PS : excusez pour les accents : je viens de taper des trucs qui s'afficheront en console sous windows
cours en cours : C++, Blender cours déjà lus : C, Xhtml/CSS Autres feuilletés : Python, PHP Mon site |
Midoagent47
|
# Posté le 16/03/2008 16:46:22 |
C++, C++ fort !![]() Groupe : Membres |
Wooow woow woooow STOOOP ! Il y a une faute ! Partie : La dérivation de type, l'image. Tu n'as pas mis des pointeurs !!!!!!! sinon, j'ai tout compris. Vocii ta note : Code : C++ - Afficher / masquer les numéros de ligne
Hihi Mon Problème Du Siècle : [SFML.Network] Le serveur ne veut pas recevoir le paquet Clique : Mon site en construction (Plus maintenu) |
funduk
|
# Posté le 24/06/2008 17:49:49 |
![]() Groupe : Membres |
Très bon tuto M@teo ! Enfin, ça doit te lasser de lire ça ... Mais c'est de ta faute ! Et puis en plus, comme d'habitude, 19, puisque personne n'est parfait ... Surtout pas un esclavagiste comme le Maître de la Cave ... Quel est le meilleur site sur la photographie au monde ? Comment peut-on poser une telle question ? hrphotographe bien sur ! |
Vous devez être inscrit pour pouvoir poster des messages
Changer de design |
En savoir plus |
Plan du site |
Politique d'accessibilité |
Règles |
Fil RSS |
XHTML 1.0 |
CSS 2.0
Édité par Simple IT SARL :
Nous contacter
| Revue de presse | Publicité
Y'a plus rien à lire, faut remonter maintenant !
Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.
314 Zéros connectés |
6 requêtes |
0.4173s (0.4066s)
