Void* auf verschiedene Klassen

  • Themenstarter Themenstarter Anwenderum
  • Beginndatum Beginndatum
A

Anwenderum

Hi. Da Code mehr als 1000 Worte sagt, poste ich ihn ersteinmal:

Code:
typedef struct
{
	void* pObject;
} strProcess;

class IOberklasse
{
public:
	IOberklasse();
	~IOberklasse();
	void Aktualisieren();

	std::vector<strProcess> vProcesses;
};

Die Aktualisierenmethode:
Code:
	std::vector<strProcess>::iterator Iterator;
	for (Iterator = vProcesses.begin(); Iterator != vProcesses.end(); ++Iterator)
	{
		((  Problem*  )(*Iterator).pObject)->ImmerGleicheFunktion();
	}

Das Problem sollte ersichtlich sein: Ich weiß in der Oberklasse nicht, von welchem Typ das Objekt ist. Diesen muss ich aber wissen, damit ich den Void* nutzen kann. Gibt es irgendeine Möglichkeit im struct Informationen über den Typ zu speichern, so dass ein Typecast möglich ist?

Momentan ergibt der Quelltext für viele sicherlich wenig Sinn, denn ich könnte die Methode ImmerGleicheFunktion() ja direkt aufrufen, ohne Oberklasse. Allerdings werden später noch Dinge wie Prioritäten, Timer etc. eingebaut, daher wäre es das praktischste, es über eine Oberklasse zu machen ( und zwar so, wie ich es hier habe ).

Schonmal vielen Dank, ich bin für jeden Denkanstoß dankbar.
 
Zurück