LocalStone
Messages postés514Date d'inscriptionmercredi 19 mars 2003StatutMembreDernière intervention 1 mars 2009
-
21 déc. 2006 à 15:38
yann_lo_san
Messages postés1137Date d'inscriptionlundi 17 novembre 2003StatutMembreDernière intervention23 janvier 2016
-
22 déc. 2006 à 00:40
Salut à tous !
Alors voilà ... Je me demandais tout à l'heure comment faire pour avoir une interface en C (une sorte d'objet abstrait dont on ne connait que le nom des méthodes). Du coup, j'ai eu une petite idée et j'ai écrit ça :
Et en fait ... Bah ça marche. Alors ma question, c'est ... Est-ce que c'est propre ? Non parce que ... Bah je sais pas. Pour moi, là, ça tiens un peu de la magie quand même. Mais si c'est propre, je crois que ça pourra servir aux plus tordus d'entre nous !
Merci de vos commentaires !
L.S.
LocalStone
Messages postés514Date d'inscriptionmercredi 19 mars 2003StatutMembreDernière intervention 1 mars 2009 21 déc. 2006 à 15:47
Petite erreur de ma part : il faut remplacer dans les structures sEntier et sReel le paramètre des pointeurs de fonctions *ecrire par void *. Bah oui ... Sinon ... Bah ça marche pas !
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 20086 21 déc. 2006 à 17:30
Le pb est C, c'est que ya pas de controle de type avec ces pointeurs void. Mais sinon, je vois pas de pb.
Enfin je sais pas si on peut appeler vraiment ca générique, on utilise
les macro en général en C pour faire du généric mais pas sur des
classes entières.
yann_lo_san
Messages postés1137Date d'inscriptionlundi 17 novembre 2003StatutMembreDernière intervention23 janvier 201626 22 déc. 2006 à 00:40
Je vois pas bien le rapport avec "interface", qui doit etre une sorte d'objet abstrait dont on peut dériver quelque chose de plus concret, alors que là c'est directement entier ou réel, pas d'abstraction...
Sinon ça doit pouvoir servir à quelque chose.
En C, les interfaces COM utilisent IDL (interface definition langage) et le compilateur MIDL qui permettent vraiment de "l'objet" en C.