En C effectivement, je vois ça en simulant les objets. C'est bof, et c'est pas fait pour. Mais c'est faisable.
En C++, il suffit de créer une classe Objet qui décrit ce qu'est un objet. Après tout, un Objet en mémoire est un... objet. C'est bête à dire mais bon :)
(au cas où, explication : on peut imaginer un ensemble de classes (là je ne parle plus C++) qui héritent toutes d'une classe "Objet". Puis on peut tenter de définir cette classe "Objet" en termes de classe, nommée "Méta-Objet". On va vite s'appercevoir qu'il y a un bouclage : une méta-classe est une classe).
C++ n'a pas ce mécanisme intrinsèquement (void *, le père de tout le monde, ne fait pas grand chose), mais on peut créer une classe "Objet" facilement, avec ces "addMethod()", "addMember()".
Au niveau implémentation simple, on peut imaginer un vecteur d'associations entre des "string" et des "void *".
Maintenant, si on veut faire ça dans le cadre d'un petit script rapidement, c'est n'est pas le langage à choisir, je disais ça juste pour montrer que c'est faisable (et utile, et utilisé).
[^] # Re: Puisqu'on parle de perl...
Posté par Mokona . En réponse à la dépêche Sortie de Python 2.0. Évalué à 1.
En C effectivement, je vois ça en simulant les objets. C'est bof, et c'est pas fait pour. Mais c'est faisable.
En C++, il suffit de créer une classe Objet qui décrit ce qu'est un objet. Après tout, un Objet en mémoire est un... objet. C'est bête à dire mais bon :)
(au cas où, explication : on peut imaginer un ensemble de classes (là je ne parle plus C++) qui héritent toutes d'une classe "Objet". Puis on peut tenter de définir cette classe "Objet" en termes de classe, nommée "Méta-Objet". On va vite s'appercevoir qu'il y a un bouclage : une méta-classe est une classe).
C++ n'a pas ce mécanisme intrinsèquement (void *, le père de tout le monde, ne fait pas grand chose), mais on peut créer une classe "Objet" facilement, avec ces "addMethod()", "addMember()".
Au niveau implémentation simple, on peut imaginer un vecteur d'associations entre des "string" et des "void *".
Maintenant, si on veut faire ça dans le cadre d'un petit script rapidement, c'est n'est pas le langage à choisir, je disais ça juste pour montrer que c'est faisable (et utile, et utilisé).