• [^] # Re: C++ / Modèle Objet

    Posté par . En réponse au journal [Bookmark] Qt fête ses vingt ans. Évalué à 8.

    Premièrement attention gtk ≠ gtkmm ≠ gobject ≠ glib .

    Le problème de Qt c'est qu'ils se veulent multi plates-formes et multi langages...

    Le modèle QObject est une surcouche du modèle de C++ et donc cela impose que les autres langages puissent se contorsionner pour rentrer dans ce modèle.

    En revanche, les modèles d'objets de GTK et de Cocoa (OpenStep),respectivement GObject et libobjc, sont écrits indépendamment d'un langage. Dans les deux cas tu peux écrire un programme en C pure si tu as envie (avec tout le glue code que cela implique) mais aussi contrairement à ce que tu indiques en langage de haut niveau type C++ ou objective-C ou SWIFT ou vala ou c# ...
    A ce moment là, la classe objet de base court-circuite le modèle objet propre au langage pour utiliser celui externe (ce qui relativement facile à faire). Ainsi tu codes en gtkmm (le binding c++ de gtk) comme si tu codais en c++ sans le glue code. Idem pour Cocoa en c++.

    Comme effet de bord, ça permet de s'échanger des classes entre langages différents ce qui pour rappel n'est pas standard même entre deux compilos de c++.

    Essayes d'utiliser une classe héritant de QObject écrite en Java dans un programme en python...tu vas pleurer.