L’autre jour je parcourais du code C++ et je suis tombé sur un bout de code qui m’a surpris. Après avoir fouillé dans le Bjarne Stroustrup ED3, j’ai été obligé de me rendre à l’évidence : “le code écrit est correct”. Voilà ce qui m’a surpris :
Huhuhu… non, c’est que je me suis intéressé au langage de scripts sous Flashpoint la semaine dernière. J’ai aidé un gars qui avait un peu de mal avec le dev
D’ailleurs ça m’a donné envie de développer, non pas une mission, mais plutôt une vidéo avec le moteur du jeu
Pffff … elle est bien loin ma formation d’analyste programmeur Ca me trou l’cul votre histoire les gars … Et dire qu’aujourd’hui je sais juste faire un script excel et basta ;)(
En tous cas Moktar, si tu joue à OFP comme tu décrit la syntaxe du code ci dessus exposé, et ben on va faire une belle équipe … lol
Ici nous écrivons du code en C++ qui sera compilé pour être exécuté par la suite. Enfin là, le seul intérêt de mon exemple est d’illustrer une facette du C++ mal connue.
Pour ce qui est de Flashpoint, oui c’est vrai ça ressemble (pas taper pour les purites) à la syntaxe des fichiers utilisés pour décrire une mission… enifn ça ressemble… ahemmm disons qu’on retrouve le mot clé « class » ainsi que les accolades et les caractères de signe et puis… c’est tout non ? on trouve aussi les mots clés tels que « if then else » « while do » … dans les fichiers de scripts, mais tout ceci sera interprété par le moteur de Flashpoint et spécifique à ce dernier.
Pourquoi y-t-a-il ressemblance ? bah, pourquoi réinventer une syntaxe à chaque fois que l’on a besoin d’écrire une description et du code ?
L’essentiel de ce que j’ai présenté n’est pas dans l’utilisation d’un pointeur sur fonction, ça je pense que la majorité des développeurs connait son fonctionnement et son écriture, mais ici c’est un pointeur sur fonction MEMBRE. C’est très différent.
De plus, la variable “pointeur sur fonction membre” déclarée localement, est utilisée comme si elle faisait parti de la classe MyClass, ceci pour pouvoir être déroulée dans le context de l’objet considéré (oMyDear).
C’est du code tout a fait propre : c’est l’utilisation de pointeurs sur des fonctions. L’interet n’est pas evident comme ca pourtant c’est tres puissant, ca permet de faire un code générique.
Ca permet par exemple de passer un pointeur sur une fonction A en parametre d’une autre fonction B et que cette derniere (:alien2: appelle la fonction (A) sans en connaitre le nom. Du coup, pour changer le comportement de la fonction B et qu’elle appelle une autre fonction, il suffit de passer un autre pointeur en parametre…