Instanciation d'objet dont le type est connu au runtime

Instanciation d'objet dont le type est connu au runtime - C++ - Programmation

Marsh Posté le 10-06-2002 à 10:03:34    

bonjour
 
 
je voudrais savoir si cela est possible d'instancier un  
objet dont le type est connu à l'éxecution.
Par exemple, j'ais une variable chaîne de caractères qui s'appelle "type", et je voudrais faire qq chose du style
new type.
 
merci d'avance pour votre aide
a+

Reply

Marsh Posté le 10-06-2002 à 10:03:34   

Reply

Marsh Posté le 10-06-2002 à 10:07:57    

en quel langage ?
si c'est Java, je sais pas  :sweat:  
si c'est en C++, tu peux parfaitement instancier un objet directement sur le tas
par exemple, pour instancier un objet de la classe CDialog (avec MFC):
 
CDialog *dlg = new CDialog();


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 10-06-2002 à 10:13:14    

C en C++,
mais le pb avec ce que je veux faire c que le type  
est saisi par l'utilisateur ( sous la forme d'une chaîne de caractères ) donc au moment de coder il est inconnu

Reply

Marsh Posté le 10-06-2002 à 10:23:26    

En C++Builder il doit y avoir moyen en utilisant ce que Borland à rajouter à cause de Delphi (vu qu'en Delphi je crois qu'y a moyen)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 10-06-2002 à 10:28:38    

Cool je travail avec Builder
Peux-tu me dire ce que c'est ?


Message édité par ashram79 le 06-10-2002 à 10:29:15
Reply

Marsh Posté le 10-06-2002 à 10:37:56    

HA bon !? Moi j'aurai affirmé qu'y a pas moyen !
Je vois pas bien comment on pourrait ajouter (ou modifier) du code compilé.

Reply

Marsh Posté le 10-06-2002 à 10:53:24    

Je connais qq un qui l'a fait en java  
et ça marche  
mais en C++ c autre chose

Reply

Marsh Posté le 10-06-2002 à 11:26:21    

Non en fait y a peut-être pas moyen... On sait modifier les propriétés published des objets dérivant de TComponent, ou récupérer un pointeur vers un contrôle d'une Form en passant son nom en tant que chaîne, mais c'est tout, on sait pas le créer comme ça :/


Message édité par antp le 06-10-2002 à 17:20:14

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 10-06-2002 à 11:28:33    

BOUHOU  :cry:

Reply

Marsh Posté le 10-06-2002 à 11:59:01    

Y a un moyen, mais c pas top dans l'esprit de la conception objet.
 
Tu fait un classe abstraite dont vont dériver tout tes types.
Tu fais un membre(de classe) pour chaque classe dérivée qui détient le type de la classe. Tu fais une méthode de classe de ta classe mère qui prend un argument le type désiré et qui te renvoit un pointeur. Ensuite dans cette fonction tu teste le type et tu appel le bon constructeur. Tu renvoie ensuite l'adresse de l'objet créé.


---------------
Le Tyran
Reply

Marsh Posté le 10-06-2002 à 11:59:01   

Reply

Marsh Posté le 10-06-2002 à 14:25:28    

c plus ou moins ce que je fais mais c po bien
par rapport aux concepts objets


Message édité par ashram79 le 06-10-2002 à 14:25:52
Reply

Marsh Posté le 10-06-2002 à 16:58:06    

Ben ouai, mais y a pas d'autres solutions à ma connaissance.


---------------
Le Tyran
Reply

Marsh Posté le 10-06-2002 à 17:17:41    

Fais une recherche sur "Factory Method" et "Design Pattern". Je crois que c'est ce que tu recherches.

Reply

Marsh Posté le 10-06-2002 à 17:20:08    

C'est tout a fait possible en Delphi et probablement en Builder aussi...
 
Déjà expliqué dans un topic ici y a qqs jours (fait une recherche sur le nom de la fonction je crois que j'ai détaillé un peu).
 
Va voir du côté de RegisterClass
 
 ;)


---------------
Informaticien.be - Lancez des défis à vos amis
Reply

Marsh Posté le 10-06-2002 à 17:20:47    

mince je l'avais oublié ce truc là :o


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 10-06-2002 à 17:21:16    

antp a écrit a écrit :

Non en fait y a peut-être pas moyen... On sait modifier les propriétés published des objets dérivant de TComponent, ou récupérer un pointeur vers un contrôle d'une Form en passant son nom en tant que chaîne, mais c'est tout, on sait pas le créer comme ça :/  




 
si  [:totocom]


---------------
Informaticien.be - Lancez des défis à vos amis
Reply

Marsh Posté le 10-06-2002 à 17:22:01    

ho ça va hein :p
tu me le fais remarquer par icq, pas besoin de le répéter 2x sur le forum :kaola:


Message édité par antp le 06-10-2002 à 17:22:08

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 10-06-2002 à 17:22:56    

antp a écrit a écrit :

ho ça va hein :p
tu me le fais remarquer par icq, pas besoin de le répéter 2x sur le forum :kaola:  




 
 :fuck:


---------------
Informaticien.be - Lancez des défis à vos amis
Reply

Marsh Posté le 10-06-2002 à 17:24:03    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed