RECHERCHER :
COMMUNAUTE MP
Identifiez vous ...
Devenir Membre
J'ai oublié mon MDP
DOMAINE MP
Bavardages
Langages Généraux
Langages Web
Langages DotNet
Autres langages
Dev. Jeux Video
Sécurité
Sys. Exploitation
Graphismes
Logiciels
Réseaux
Bases de données
Méthodologies
Emplois High-tech
Aide juridique
Articles juridiques
FORUM
Index des forums
Ajouter un sujet
Rechercher sujet
Contact Responsable
Devenir modérateur
CHAT MP IRC
Votre pseudo ...
Srv: irc.moteurprog.com
Chan: #MoteurProg
PARTICIPER
Plus de 3500 emplois.
Rechercher un job
Déposez votre CV
Emplois High-tech

Visiteur MP

 Tirer les avantages de la POO

Forum : POO
Sous Catégorie : Aucune
Type du sujet : Sujet Normale
FAQ : FAQ POO

SUIVI DES SUJETS PAR MAIL

SUIVI PAR MAIL INACTIF

RESOLUTION DU SUJET SUJET NON RESOLU
BLOQUAGE DU SUJET SUJET ACTIF
APPARTENANCE A LA FAQ N'APPARTIENT PAS A LA FAQ


PAGES : [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]

POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

FORUM POO

PREMIERE PAGE

PAGE PRECEDENTE

Page précedente

Page suivante

PAGE SUIVANTE

DERNIERE PAGE
Woufeil
Membre du club
Chef de projet(s) :
- AdminServ

Avatar de Woufeil
Inscrit : 21/09/2004
Messages : 825
Message
#86795
Posté le 01/02/06 à 19:28
Selon toute logique, une classe qui hérite d'une autre doit avoir quelque chose en commun avec son ancêtre ainsi que ces particularités, ainsi je ne trouve pas que le fait d'avoir une classe générale sois la meilleure solution. Ton code, spirit, signifie pour moi qu'une map a un ancêtre commun avec... un personnage. Je ne trouve pas cette relation très logique, c'est pour ça que je ne trouve pas ton code très logique.

pac:
Pour le polymorphisme en Perl (langage faiblement typé), il existe bien, la surcharge d'une fonction étant possible d'une classe à l'autre.

package Class1; sub consclass1 { #définition du constructeur } sub methode1 { #définiton methode1 } 1;


package Class2; use Class1; our @ISA = ("Class1"); #Class2 IS_A Class1 sub consclass2 { #définition du constructeur } sub methode1 { #définiton methode1 } 1;

Le langage Perl étant semi interprété, il supporte les liaisons dynamiques. Si je définit ceci :

sub fonction { my ($param) = @_; $param->methode1; } #déclaration de deux objets, un de type Class1 et l'autre de type Class2 my $instance1 = Class1->consclass1 my $instance2 = Class2->consclass2 fonction($instance1);#fonction exécute Class1::methode1() fonction($instance2);#fonction exécute Class2::methode1() }
N'est ce pas du polymorphisme ? Pourtant il n'est pas question de type ici.

D'ailleurs, voivi un exemple en C++ (désolé si il y a des erreurs)

class class1 { public: virtual void methode(int, double); }; class class2 : public class1 { public: virtual void methode(int, double); }; void fn(class1 &c) { c.methode([...]); } int main() { class1 c1; class2 c2; fn(c1); //fn appelle class1::methode fn(c2);//fn appelle class2::methode }

Il n'y a pas de différence dans les arguments des deux classe methodes, pourtant il y a bien polymorphisme (class2 surcharge methode() de class1).
Tout ça pour dire que je ne vois pas en quoi le faible typage enpêce la surcharge de fonction d'une classe à l'autre et le polymorphisme.
__________________________
[col]Woufeil[/col]
Image
Image et respectez la charte.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Publicité
Inscrit : X
Messages : X
Message
#Aucun

HAUT DE PAGE

  

Woufeil
Membre du club
Chef de projet(s) :
- AdminServ

Avatar de Woufeil
Inscrit : 21/09/2004
Messages : 825
Message
#86796
Posté le 01/02/06 à 19:35
Ola c'est quoi ce bug ? Ma réponse n'a pas été comptée, mais elle s'affoche quand même... Bizare.
__________________________
[col]Woufeil[/col]
Image
Image et respectez la charte.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Spirit
Superviseur :
- C & C++
Modérateur :
- PHP
- Javascript
- MySQL
Avatar de Spirit
Inscrit : 07/04/2004
Messages : 1966
Message
#86799
Posté le 01/02/06 à 20:28
[quote]heroAndMap *h = new heroAndMap;
h->createPerso(new Perso);
h->createMap(200,300);
h->LoopWhileNotQuit();
[/quote]
pas vraiment, je fais juste un heroAndMap *h;
h = new heroAndMap(tous mes arguments);

et dans mon main j'ai une boucle while(!done) dans laquelle je fais toutes les gestion d'évènements (changer de maps selon certaines conditions etc)

[quote]h->createPerso(new Perso);[/quote]
vu qu'il n'y en a qu'un, je préfère que ma classe générale descende directement de celle-ci

vous n'arriverez pas à me faire changer^^
__________________________
Spirit - modérateur casu ^-^'

ERREUR BBCODE SUR CE MESSAGE :
- La valeur de la balise "quote" n'est pas correcte !

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

pac
Co-Administrateur
Superviseur :
- Méthodologie.
Modérateur :
- Delphi
Chef de projet(s) :
- Jeu Awalé
- EcoSystem
- MySudoku

Avatar de pac
Inscrit : 08/04/2004
Messages : 6570
Message
#86831
Posté le 02/02/06 à 09:56
[quote]vous n'arriverez pas à me faire changer^^[/quote]
Ca ne sert à rien dans ce cas de débattre. On perd notre temps à essayer de te faire comprendre comment faire un meilleur code. :():

[quote]N'est ce pas du polymorphisme ?[/quote]
Oui c'est du polymorphisme, mais par héritage, on identifie la méthode en fonction de la classe effectivement construite de l'objet.

je parlais d'un autre type de polymorphisme :
[code]public:
void methode(int, double);
void methode(char*, double);
void methode(int, char*);[/code]
ou ici, on utilise la signature de la méthode pour identifier laquelle appeller.

En ActionScrpit 2.0, il existe le typage faible et le typage fort en même temps, on n'est pas obligé d'appeller les routines avec le bon nombre de paramètres, il n'y a pas de vérification au moment de la compilation, pour moi ce sont de gros défauts qui ne sécurisent pas du tout le code et qui font qu'on ne sait plus trop ou on en est.
__________________________
Lisez la [url=http://www.forum.moteurprog.com/bavardages/forum-msg-22857-1.htm]charte[/url], pensez à regarder la [url=http://www.forum.moteurprog.com/FAQ/FAQ.php]FAQ[/url], les [url=http://www.moteurprog.com/Tutoriaux/]tutoriaux[/url], l'[url=http://www.moteurprog.com/Annuaire/]annuaire[/url] et faites une [url=http://www.forum.moteurprog.com/Rechercher/Index.php]recherche[/url] dans les forums.
N'oubliez pas le Tag [b][Résolu][/b][img]http://www.ressources.moteurprog.com//Ressources/Images/Forum/Resolu.gif[/img].

Initiez-vous à Delphi avec [url=http://www.turboexplorer.com/delphi]Turbo Delphi Explorer[/url], au C ou au C++ avec [url=http://www.codeblocks.org]Code::Blocks[/url] et C# avec [url=http://www.microsoft.com/france/msdn/vstudio/express/vcsharp/telechargez.mspx]Visual C# 2005 Express[/url].

ERREUR BBCODE SUR CE MESSAGE :
- La valeur de la balise "quote" n'est pas correcte !

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE ALLER VOIR SON SITE

Woufeil
Membre du club
Chef de projet(s) :
- AdminServ

Avatar de Woufeil
Inscrit : 21/09/2004
Messages : 825
Message
#86846
Posté le 02/02/06 à 13:02
pac, ce que tu as fais là est une simple surcharge de fonction, c'est aussi considéré comme du polymorphisme ? Si oui, je savais pas, je croyais que justement le polymorphisme intervenait quand on surcharge des fonctions par héritages...

Hum, à y être je pose une question : quels sont les intérêts de l'héritage privé ? Et surtout quand l'utiliser ? Selon moi, si un membre a été déclaré come privé, je ne vois pas pourquoi une classe fille devrais y avir accés, sauf en cas d'héritage multiple : on veux que certaines classes filles y est accés mais pas d'autres. Mais je sais qu'il y a d'autres exemples plus appropriés sur l'utilité de l'héritage privé, vous pouvez m'en citer ?
__________________________
[col]Woufeil[/col]
Image
Image et respectez la charte.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

pac
Co-Administrateur
Superviseur :
- Méthodologie.
Modérateur :
- Delphi
Chef de projet(s) :
- Jeu Awalé
- EcoSystem
- MySudoku

Avatar de pac
Inscrit : 08/04/2004
Messages : 6570
Message
#86856
Posté le 02/02/06 à 14:19
[quote] pac, ce que tu as fais là est une simple surcharge de fonction, c'est aussi considéré comme du polymorphisme ? Si oui, je savais pas, je croyais que justement le polymorphisme intervenait quand on surcharge des fonctions par héritages...
[/quote]
C'est marrant, car pour moi, redéclarer une méthode dans une classe fille, je n'appelle pas ça du polymorphisme, mais une simple surcharge de méthodes. :lol:

L'héritage privée, si je me souviens bien, la classe fille n'a accés ni aux attributs private, ni aux attributs protected et je ne vois pas du tout quelle en est l'utilité, d'ailleurs ce n'est presque jamais utilisé et nos pairs n'en trouvent pas beaucoup d'utilité non plus.
Et ne parlons même pas de l'héritage protected. :lol:
__________________________
Lisez la [url=http://www.forum.moteurprog.com/bavardages/forum-msg-22857-1.htm]charte[/url], pensez à regarder la [url=http://www.forum.moteurprog.com/FAQ/FAQ.php]FAQ[/url], les [url=http://www.moteurprog.com/Tutoriaux/]tutoriaux[/url], l'[url=http://www.moteurprog.com/Annuaire/]annuaire[/url] et faites une [url=http://www.forum.moteurprog.com/Rechercher/Index.php]recherche[/url] dans les forums.
N'oubliez pas le Tag [b][Résolu][/b][img]http://www.ressources.moteurprog.com//Ressources/Images/Forum/Resolu.gif[/img].

Initiez-vous à Delphi avec [url=http://www.turboexplorer.com/delphi]Turbo Delphi Explorer[/url], au C ou au C++ avec [url=http://www.codeblocks.org]Code::Blocks[/url] et C# avec [url=http://www.microsoft.com/france/msdn/vstudio/express/vcsharp/telechargez.mspx]Visual C# 2005 Express[/url].

ERREUR BBCODE SUR CE MESSAGE :
- La valeur de la balise "quote" n'est pas correcte !

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE ALLER VOIR SON SITE

Alp
Superviseur :
- Système d'ex.
- Méthodologie.
- C & C++
Modérateur :
- Bavardages
Chef de projet(s) :
- My SDL Lib

Avatar de Alp
Inscrit : 24/06/2004
Messages : 2571
Message
#86874
Posté le 02/02/06 à 17:50
Ben si ça sert, seulement le comportement que l'on désire pour nous objets, souvent, est propice à l'utilisation d'un héritage public ...
__________________________
Be C++
Mon Blog (C++, Intelligence Artificielle, Prolog)

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 
POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

PREMIERE PAGE

PAGE PRECEDENTE Page précédente

Page suivante

PAGE SUIVANTE DERNIERE PAGE

FORUM POO



    PAGES : [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]



.: Site Web développé par Julien Pichot et l'équipe MPWG avec www.evolvia-web.com :.