Raphaël POITEVIN, le Wed 20 Aug 2008 23:42:19 +0200, a écrit :
> Le 18 août 2008 23:25, Samuel Thibault <[EMAIL PROTECTED]> a écrit :
> > Pierre Lorenzon, le Mon 18 Aug 2008 14:42:54 +0200, a écrit :
> > Le problème c'est que gnome est écrit en orienté-objet en C
> Ah bon il y a du C orienté objet ?
C'est très courant oui.
> J'aimerai que tu m'explique un peu plus ce sujet car je croyais que le
> C orienté objet justement était le c++.
Le C++ c'est la manière propre de le faire oui. Mais on peut aussi
tout faire à la main en ajoutant à toute une série de fonction un
paramètre pour passer l'"objet" (l'adresse d'une structure) sur lequel
elle doit travailler. On peut aussi définir des "méthodes" en ajoutant
dans la structure un pointeur vers une fonction (à laquelle il faudra
tout de même passer l'adresse de la structure). Quant à l'héritage,
il faut se farcir la recopie à la main. Pour ce qui est de l'héritage
multiple (ce dont gnome a typiquement besoin pour pouvoir exposer un
type "Widget"), on est obligé de caster, et là c'est très moche même
si gnome essaie de "proprifier" le cast en vérifiant à la volée le
type.
Dans le noyau Linux, il y a pas mal de tel orienté objet, ne serait-ce
que pour facilement gérer de manière transparente les différents
systèmes de fichiers par exemple. Mais le besoin d'un langage vraiment
fait pour ne s'est pas vraiment fait sentir. Dans le cas de gnome, ça se
fait _fortement_ sentir je trouve.
Samuel
_______________________________________________
Liste de diffusion CarrefourBLinuX
[email protected]
http://lists.freearchive.org/mailman/listinfo/carrefourblinux
Pour s'inscrire par courriel :
'mailto:[EMAIL PROTECTED]'
Pour se retirer de la liste par courriel :
'mailto:[EMAIL PROTECTED]'
Archives : http://lists.freearchive.org/pipermail//carrefourblinux
Anciennes archives (Yahoogroupes) :
http://fr.groups.yahoo.com/group/carrefourblinux/messages
Rechercher : http://lists.freearchive.org/cgi-bin/search.cgi
Signets : http://fr.groups.yahoo.com/group/carrefourblinux/links/
Fiches EDU : http://blinuxwiki.pbwiki.com/FichesEdu