PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Dynamisches erzeugen von Objekten



Scavenger
11-05-2004, 15:17
Hallo !!

Ich möchte eine Anwendung leicht erweiterbar halten und habe
mir deshalb einige Interface-Klassen definiert, welche ich
vererbe und dann halt implementiere :

class interface
{
public:
virtual void tuWas (void) = 0;
}

class x : infterface
{
public:
void tuWas (void);
}

Ich würde jetzt gerne sowas wie

interface inter01 = getClassByName ("x");

machen.

In Java ist das glaub ich möglich und fand ich auch ziemlich
nützlich. (Es ist schon etwas länger her, das ich was mit Java
gemacht habe. :D )

Geht sowas auch irgendwie in C++, oder muss ich da
meine eigenen WrapperKlassen schreiben ?

Scav.

axeljaeger
11-05-2004, 16:01
In Java nennt sich das Reflection. In C++ gibt es das so nicht, du musst dir eine Factory bauen. Das sieht dann in etwa so aus:




interface* getClass(string key) {
if(key == "x") {
return new x;
} else if (key == "y") {
return new y
} else {
return 0
}
}

Scavenger
11-05-2004, 16:05
Danke.

Damit hat sich meine Vermutung bestätigt.

Scav.

panzi
11-05-2004, 19:26
Und ist die private Ableitung absicht? Oder nur public vergessen?

class x : public infterface
{
public:
void tuWas (void);
}

Scavenger
11-05-2004, 23:06
Nur vergessen.. :D