string als objektname verwenden?
-
Hallo!
Ich moechte eine funktion schreiben, die mir mehrere Objekte definiert. Da diese Objekte einen sehr aehnlichen namen haben, wuerde ich gerne einen "Stammnamen" eingeben, der dann mit unterschiedlichen endungen versehen werden und als name fuer die zu definierenden objekte dienen soll. Mein Problem ist jetzt, dass ich der Funktion einen string uebergebe, an diesen auch die entsprechenden endungen anhaengen kann, aber leider den "inhalt" des strings nicht als namen fuer meine objekte verwenden kann. Wie kann ich dieses Problem beheben?
-
Du meinst sowas, wie einen String in einen Variablennamen verwandeln?
Soweit ich weiß, ist das in C++ nicht direkt möglich.
Eine alternative könnte allerdings std::map sein.
-
Du kannst u.U. Präprozessor Makros verwenden.
Einfaches Beispiel:#define DEFINE_MY_OBJECT(Postfix, Class, Initializer) \ Class g_my_super_object_ ## Postfix(Initializer); // verwenden dann mit: DEFINE_MY_OBJECT(sepp, int, 0) DEFINE_MY_OBJECT(hans, double, 1)