STL-Map und alles schmiert ab?



  • Was muss ich beachten, wenn ich eine Map nutzen will? ich möchte gern Instanzen beliebiger Klassen mit Namen speichern- wobei die Speicheradressen der Instanzen der Key sind.

    map<void*, const char*> objects;
    pair<void*, const char*> data(object, name);
    objects.insert (data);
    

    interessanterweise funktioniert das in meiner main tadellos.
    in meiner eigentlichen klasse nicht.

    TinyLog *TinyLog::getInstance (void *object, const char *name) {
    		if (instance == 0) {
    			new TinyLog;
    		}
    		instance->setData (object, name);
    		return instance;
    	}
    
    	void TinyLog::setData (void *object, const char *name) {
    		pair<void*, const char*> data(object, name);
    		objects.insert (data);
    	}
    

    da schmiert mir das Programm in der Zeile objects.insert(data) ab.

    hat da wer eine Idee, woran das liegt?



  • bin nen trottel.. ich sollte vielleicht mal die instanz des singletons irgendwo speichern ^^



  • wollts grad schreiben... 😉
    hab schon überlegt ob dus im konstruktor machst



  • DocJunioR schrieb:

    Was muss ich beachten, wenn ich eine Map nutzen will? ich möchte gern Instanzen beliebiger Klassen mit Namen speichern- wobei die Speicheradressen der Instanzen der Key sind.

    Ich hoffe du hast ansonsten noch einen wirklich guten Grund für die Datenhaltung über void-Pointer... In der Regel kommt mir in C++ wenn ich irgendwo "void*" sehe als erstes schlechtes Design in den Sinn.

    cu André



  • asc schrieb:

    DocJunioR schrieb:

    Was muss ich beachten, wenn ich eine Map nutzen will? ich möchte gern Instanzen beliebiger Klassen mit Namen speichern- wobei die Speicheradressen der Instanzen der Key sind.

    Ich hoffe du hast ansonsten noch einen wirklich guten Grund für die Datenhaltung über void-Pointer... In der Regel kommt mir in C++ wenn ich irgendwo "void*" sehe als erstes schlechtes Design in den Sinn.

    cu André

    Alleine der Name (object, objects) sagt ja schon, dass er Wahrscheinlich besser eine abstrakte Klasse als Basis hat.



  • DocJunioR schrieb:

    ...ich möchte gern Instanzen beliebiger Klassen mit Namen speichern- wobei die Speicheradressen der Instanzen der Key sind...

    Warum ?
    (ist nicht böse gemeint, sondern eine echte Frage)

    Gruß,

    Simon2.


Anmelden zum Antworten