• [^] # Re: Langage objet...

    Posté par . En réponse à la dépêche Les nouveautés de Qt 4. Évalué à 2.

    Bien concevoir les interfaces ne suffit pas avec le C++, justement: si on n'a pas mis de 'virtual' partout, il va passer par l'interface de la classe parente et pas par celle de l'objet sur lequel on l'applique. En somme, c'est un langage "à classes" plutôt qu'un langage objet: on lui a dit qu'un truc pouvait être de type A, alors il le traite comme tel, même si en réalité l'objet vivant qu'on lui amène est de type B et a réimplémenté une partie de l'interface.

    Pour moi la réutilisabilité via héritage est absolument essentielle pour parler de langage à objet. Sinon quel est l'intérêt de distinguer par rapport aux autres langages?

    Oui, on peut faire de l'objet en C++ (avec des virtual de partout), oui on peut faire de l'objet en C (exemple: glib-gobject-gtk) ; en fait on peut faire du truc genre objet dans à peu près n'importe quel langage.

    Je réaffirme donc: C++ n'est pas un langage à objets. On peut le forcer à en faire, mais il faut le prévoir.

    PS: la pwlib (bibliothèque sur laquelle s'appuie gnomemeeting) est en C++, avec des classes et de l'héritage simple (ie: les classes ne réimplémentent pas ce qu'il y a dans leurs parentes -- sauf cas très exceptionnel) à gogo. Mettre au point un système de modules pour les pilotes matériels a été une horreur, parce que ça nécessitait du vrai héritage: il a fallu reprendre *tous* les étages... question réutilisabilité, on peut difficilement appeler ça une réussite.