All pastes #747199 Raw Edit

Anonymous

public text v1 · immutable
·published 2007-10-23 20:34 UTC
rendered paste body
Oct 07 18:37:12 <Co2r>	c'est quoi le polymorphisme ?
Oct 07 18:38:33 <Co2r>	MProg || DHX
Oct 07 18:40:34 <DHX>	Co2r le faite de pouvoir utiliser le mm code pour différents type; enfin pas obligatoirement le mm code. mais genre i tu defini un fct int somme(int a, int b) et une autre double somme(double a, double b) tu pourra appeller ta fct somme sans te soucier si a et b sont des int ou double. c une sorte de polymorphisme
Oct 07 18:40:47 <DHX>	les templates sont une autre forme de polymorphisme
Oct 07 18:40:54 <DHX>	lhéritage des classes une autre
Oct 07 18:41:04 <DHX>	genre ta une classe "forme"
Oct 07 18:41:08 <DHX>	une classe "cercle"
Oct 07 18:41:13 <DHX>	une classe "carré"
Oct 07 18:41:42 <DHX>	tu créé une liste dobjets "forme"
Oct 07 18:41:56 <DHX>	oops jai oublié de dire que carré et cercle héritent ts les duex de forme
Oct 07 18:42:04 <Co2r>	oki
Oct 07 18:42:22 <DHX>	ds la classe forme ta une fct qui sappelle genre double aire()
Oct 07 18:42:27 <DHX>	qiui renvoit laire de la forme
Oct 07 18:42:33 <DHX>	tu créé une liste de forme
Oct 07 18:42:47 <DHX>	en fait chaque objet de la liste est soit un carré soit un cercle
Oct 07 18:43:08 <DHX>	tu peux appeller la fct aire() sans te soucier que cela soit un carré ou un cercle
Oct 07 18:43:15 <Co2r>	oki
Oct 07 18:43:16 <DHX>	ça c aussi du polymorphisme
Oct 07 18:43:23 <Co2r>	sympa
Oct 07 18:43:27 <DHX>	ouais
Oct 07 18:48:28 <Co2r>	merci DHX
Oct 07 18:48:28 <MProg>	hum ...
Oct 07 18:48:58 <MProg>	j'aurais dis que c'est quand on redéfini une fonction pour une classe ... pour avoir une meme fonction qui fait des trucs differents par rapport a la classe
Oct 07 18:48:58 <MProg>	erf
Oct 07 18:48:58 <MProg>	ca fait caca
Oct 07 18:48:58 <MProg>	ah ...
Oct 07 18:49:28 <MProg>	plus court :p ... "virtual"
Oct 07 18:49:43 <DHX>	ouais aussi, mais c t pour expliquer plus simplement
Oct 07 18:50:10 <DHX>	mais ouais, tu peux avoir ta fct double air() qui est une fct virtual. et que ds carré et cercle tu es la fct aire() définie
Oct 07 18:50:32 <MProg>	comme dans mon bot ...
Oct 07 18:50:40 <MProg>	j'ai une classe abstraite ...
Oct 07 18:50:47 <MProg>	euh "interface" en java je pense :p
Oct 07 18:51:04 <DHX>	ouauis ;)
Oct 07 18:51:26 <MProg>	classe qui contient que des fonctions virtuelles pures (enfin au moins 1)
Oct 07 18:51:29 <MProg>	;p
Oct 07 18:52:32 <Co2r>	c'est quoi des fonctions virtuel ? :s
Oct 07 18:54:08 <MProg>	c'est super pratique pour appeler les methodes avec le bordel de pointeurs / references mon truc :p
Oct 07 18:54:23 *	MProg explique de moins en moins bien :x
Oct 07 18:54:53 <MProg>	'fin .... ca me sert pour le system de plugins / modules
Oct 07 18:59:45 <Co2r>	j'ai pas compri ce qu'etait une methode virtuel :x
Oct 07 19:04:05 <MProg>	:/
Oct 07 19:04:12 *	MProg != prof :s
Oct 07 19:04:21 <MProg>	la preuve ^
Oct 07 19:04:23 <MProg>	:p
Oct 07 19:04:38 <MProg>	je sais po expliquer des trucs :/
Oct 07 19:06:23 <Co2r>	po grave
Oct 07 19:06:29 <Co2r>	je me remet a lire le livre de tibo
Oct 07 19:06:33 <Co2r>	jvai bien tombé dessus
Oct 07 19:06:40 <Co2r>	tibo = watchix
Oct 07 19:07:03 <Co2r>	la jli du uml sur developpez
Oct 07 19:13:06 <DHX>	Co2r : pour expliquer une mathode virtuelle imagine tj nos trois classes forme carré et cercle. carré et cercle héritent de forme. on a tj notre liste de forme
Oct 07 19:13:12 <DHX>	pour chaque objet on appelle la fct aire()
Oct 07 19:13:32 <DHX>	on veut que si dans carré il y ait une fct aire() celle si soit appellée qd lobjet est un carré
Oct 07 19:13:50 <DHX>	si aucune fct aire() nest définie ds carré on veut que la fonction aire() de forme soit appellée
Oct 07 19:14:07 <DHX>	on définii alors une fct aire() dans la classe forme
Oct 07 19:14:12 <DHX>	et on la met en virtual
Oct 07 19:14:57 <DHX>	si on veut que dans tous les cas ça essaye d'appeller la fct aire() de la classe qui hérite de forme et ne pas définir de fct aire() dans forme
Oct 07 19:15:28 <DHX>	alors on met juste virtual double aire()=0; dans forme (on défini aire() comme fct virtuelle pure ds forme)
Oct 07 19:15:51 <DHX>	cela signifit dc que les classes qui héritent de forme doivent definir une fct double aire()
Oct 07 19:17:11 <DHX>	la classe forme est dc une classe dite abstraite (on ne peut pas créer d'objet forme, seulement des objets carré ou cercle, puisque ds la classe il est défini qu'on attend que la méthode aire() soit définie ds une classe fille)
Oct 07 19:17:29 <DHX>	c ptetre pas tres clair :x
Oct 07 19:17:40 <DHX>	mais spa super facile a expliquer comme ça