LES MÉTHODES DE CLASSE

cs_Forman Messages postés 600 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 6 avril 2010 - 24 nov. 2003 à 12:34
cs_Forman Messages postés 600 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 6 avril 2010 - 24 nov. 2003 à 12:34
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/11993-les-methodes-de-classe

cs_Forman Messages postés 600 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 6 avril 2010 1
24 nov. 2003 à 12:34
Euh... est-ce qu'en créant une classe TDlgForm avec une méthode Execute et en faisant hériter les différents dialogues qu'on veut créer de TDLGForm, on obtient la même chose à peu près, non?

Pour moi, les méthodes de classes avaient un autre intérêt, c'était de pouvoir obtenir des infos "méthodiques" sur une classe, par exemple son nom de classe (ClassName), et cela sans avoir à créer une instance de la classe pour pouvoir appeler la méthode.

J'ai d'ailleurs une question à ce sujet: je suis en train de programmer une grosse application qui sert à faire de la vidéo en temps réel. L'idée est d'utiliser des plug-ins pour pouvoir importer par exemple de nouveaux effets, car je compte distribuer le programme en shareware, et rendre une partie des sources publiques pour que les utilisateurs puissent créer facilement leurs propres plug-ins.

J'utilise donc des DLL pour inclure de nouveaux plug-ins, qui définissent non pas des classes, mais des interfaces GUID (parce que apparemment la gestion des classes entre différentes DLL nécessite que l'application qui appelle une méthode d'une classe définie par la DLL doit connaitre la déclaration exacte de cette classe, pas seulement d'une classe de base dont elle hérite). Sinon, il se pose des problèmes lors de l'appel de méthodes virtuelles héritées à l'intérieur de la DLL et dont le .exe ne connait pas l'implémentation. Apparemment, les interfaces avec GUID ont été créées justement pour éviter ce problème.

Ma question est la suivante: est-ce qu'il est possible de définir des méthodes de type méthodes de classe pour une interface? Ca me serait utile car je pourrais alors connaitre certaines propriétés d'un plugin qu'un utilisateur a défini sans avoir au préalable à créer une instance d'interface, ce qui n'est pas souhaitable puisque ça consommerait de la resource pour rien par exemple. Je suis d'accord qu'on peut se débrouiller autrement, mais ça rendrait le code beaucoup plus élégant et simple...