Hallo
Ich habe eine Frage zur Klassenverbung. Ich habe eine Reihe von Klassen die Ich von einer Klasse abgeleitet habe. Alle (verschiedenen) Objekte haben eine Methode Run(); Ich möchte jetzt ein Array anlegen in dem ich verschiedene Objekte verwalte. Da dies ja so nicht geht lege ich ein Array der Oberklasse an und instanziere aber Objekte der verschiedenen Unteklassen hinein. geht das oder schreib ich mir da meinen Speicher falsch voll.
meine Beispiel klassen zu dem Problem ...
<PRE>
class TOberKlasse
{
public :
TOberKlasse();
virtual int Run();
protected :
int iTestVar1;
int iTestVar2;
};
class TUnterKlasse1 : public TOberKlasse
{
public :
TUnterKlasse1();
int Run();
private :
int iTestVarUnterKlasse1;
};
class TUnterKlasse2 : public TOberKlasse
{
public :
TUnterKlasse2();
int Run();
private :
int iTestVarUnterKlasse2;
};
</PRE>
meine Verwaltung
<PRE>
TOberKlasse* UnterKlassenArray[2];
UnterKlassenArray[0] = new TUnterKlasse1();
UnterKlassenArray[1] = new TUnterKlasse2();
UnterKlassenArray[0]->Run();
</PRE>
wäre toll wenn sich jemand von den Profis das mal anschauen könnte.
Danke Gruß Christian
Ich habe eine Frage zur Klassenverbung. Ich habe eine Reihe von Klassen die Ich von einer Klasse abgeleitet habe. Alle (verschiedenen) Objekte haben eine Methode Run(); Ich möchte jetzt ein Array anlegen in dem ich verschiedene Objekte verwalte. Da dies ja so nicht geht lege ich ein Array der Oberklasse an und instanziere aber Objekte der verschiedenen Unteklassen hinein. geht das oder schreib ich mir da meinen Speicher falsch voll.
meine Beispiel klassen zu dem Problem ...
<PRE>
class TOberKlasse
{
public :
TOberKlasse();
virtual int Run();
protected :
int iTestVar1;
int iTestVar2;
};
class TUnterKlasse1 : public TOberKlasse
{
public :
TUnterKlasse1();
int Run();
private :
int iTestVarUnterKlasse1;
};
class TUnterKlasse2 : public TOberKlasse
{
public :
TUnterKlasse2();
int Run();
private :
int iTestVarUnterKlasse2;
};
</PRE>
meine Verwaltung
<PRE>
TOberKlasse* UnterKlassenArray[2];
UnterKlassenArray[0] = new TUnterKlasse1();
UnterKlassenArray[1] = new TUnterKlasse2();
UnterKlassenArray[0]->Run();
</PRE>
wäre toll wenn sich jemand von den Profis das mal anschauen könnte.
Danke Gruß Christian
Comment