Abstracte Klasse in eine Map
-
Hi,
ich habe eine abstrakte Klasse folgender Form erstellt:
class abstract_Test { public: virtual bool Setup(HMIScreenInstance screen)=0; }Nun möchte ich in einer anderen Klasse eine Map erstellen:
map<std::string, abstract_Test> test //hier knallts aber mit Error C2259Der Error Text ist "cannot instantiate abstract class". Ich erstelle doch aber keine Instanz?! Ich möchte nur eine Map anfertigen, in der die Unterklassen meiner abstrakten Oberklasse aufgeführt werden...
lg Max
-
Dann musst du mit Zeiger arbeiten.
-
Wie würde das dann aussehen?
map<std::string, *abstract_Test> test //so knallt es auch map<std::string, &abstract_Test> test //und so erst recht
-
Der Stern gehört hinter den Typ. Komm schon das weißt du doch.

Übrigens das selbe mit der Referenz. Dann kannst du aber nur Objekte des abstrakten Types referenzieren.