INTÉRÊT DE L?UTILISATION D?UNE CLASSE ABSTRAITE [DEV-CPP]
zeratul67
Messages postés97Date d'inscriptionmardi 9 avril 2002StatutMembreDernière intervention11 mai 2008
-
25 mars 2006 à 19:18
magic_Nono
Messages postés1878Date d'inscriptionjeudi 16 octobre 2003StatutMembreDernière intervention16 mars 2011
-
15 mai 2006 à 16:04
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
magic_Nono
Messages postés1878Date d'inscriptionjeudi 16 octobre 2003StatutMembreDernière intervention16 mars 2011 15 mai 2006 à 16:04
totalement exact, désolé, j'ai dût répondre un peu vite lors de mon dernier post.
les fonctions virtuelles sont redéfinissables dans les classes filles.
et ces dernieres refusent de compiler seulement si elles comportes des fonctions virtuelles pures (=0) non redéfinies.
Magicalement
Nono.
cs_exar
Messages postés286Date d'inscriptionvendredi 5 décembre 2003StatutMembreDernière intervention22 avril 20121 14 mai 2006 à 14:27
Magic_Nono:
Il me semble que c'est le fait que la méthode soit virtuelle pure (=0) qui impose sa présence dans les classes filles, si je ne me trompe pas, non ?
Quand une, fonction membre n'est pas virtuelle, la fct invoquée est celle définie dans le type statique de l'objet de classe(ou pointeur ou réf) à travers laquelle elle est invoquée. Quand une fct membre est virtuelle, la fct invoquée est celle définie dans le type dynamique de l'objet de classe.
Une fct membre virtuelle pure permet d'encapsuler la fct de manière indépendante du type dérivé. Ces fcts membres n'ont d'ailleurs pasx d'implémentation dans la clase de base.
magic_Nono
Messages postés1878Date d'inscriptionjeudi 16 octobre 2003StatutMembreDernière intervention16 mars 2011 30 mars 2006 à 10:28
cette classe est abstraite puisqu'elle ne peut avoir d'instance
le mots clef virtual impose que chaque classe fille possède cette méthode.
Magicalement
Nono.
Kleidp
Messages postés124Date d'inscriptionjeudi 5 juin 2003StatutMembreDernière intervention10 février 2008 28 mars 2006 à 20:03
Salut, juste deux petite question sur ta source (je débute sur la programmation objet):
- Dans ta description, tu dis que la classe Forme est une classe abstraite.
En fait (à ce que j'ai lu), ce n'est pas plutot une classe de base ou classe mère ?
Quel est la difference ?
- Tu as mis "virtual" devant les methotes de Forme. A quoi cela sert il ?
Merci pour vos réponses ..
samra_82
Messages postés15Date d'inscriptionsamedi 25 mars 2006StatutMembreDernière intervention28 mars 2006 27 mars 2006 à 13:16
Salut
Je trouve que c'est un exemple bien claire qui permet de comprendre l'utilité des classes abstraites pour les débutants dans la programmation orientée objet avec les commentaires qui le rend plus lisible.Merci
magic_Nono
Messages postés1878Date d'inscriptionjeudi 16 octobre 2003StatutMembreDernière intervention16 mars 2011 26 mars 2006 à 22:07
en effet, l'exemple standart de la plupart des cours sur l'héritage abstrait est sur les formes géométriques...
voici un autre exemple, sur différents types de fichiers à remplir:
15 mai 2006 à 16:04
les fonctions virtuelles sont redéfinissables dans les classes filles.
et ces dernieres refusent de compiler seulement si elles comportes des fonctions virtuelles pures (=0) non redéfinies.
Magicalement
Nono.
14 mai 2006 à 14:27
Il me semble que c'est le fait que la méthode soit virtuelle pure (=0) qui impose sa présence dans les classes filles, si je ne me trompe pas, non ?
Quand une, fonction membre n'est pas virtuelle, la fct invoquée est celle définie dans le type statique de l'objet de classe(ou pointeur ou réf) à travers laquelle elle est invoquée. Quand une fct membre est virtuelle, la fct invoquée est celle définie dans le type dynamique de l'objet de classe.
Une fct membre virtuelle pure permet d'encapsuler la fct de manière indépendante du type dérivé. Ces fcts membres n'ont d'ailleurs pasx d'implémentation dans la clase de base.
30 mars 2006 à 10:28
le mots clef virtual impose que chaque classe fille possède cette méthode.
Magicalement
Nono.
28 mars 2006 à 20:03
- Dans ta description, tu dis que la classe Forme est une classe abstraite.
En fait (à ce que j'ai lu), ce n'est pas plutot une classe de base ou classe mère ?
Quel est la difference ?
- Tu as mis "virtual" devant les methotes de Forme. A quoi cela sert il ?
Merci pour vos réponses ..
27 mars 2006 à 13:16
Je trouve que c'est un exemple bien claire qui permet de comprendre l'utilité des classes abstraites pour les débutants dans la programmation orientée objet avec les commentaires qui le rend plus lisible.Merci
26 mars 2006 à 22:07
voici un autre exemple, sur différents types de fichiers à remplir:
http://www.cppfrance.com/codes/GESTION-COMMUNE-FORMATS-SORTIE-INTERFACE-COMMUNE-POUR-HTML_24520.aspx
magicalement
Nono.
25 mars 2006 à 19:18