Robert B.: C++: char* behält zugewiesenen wert und std::string nimmt default an... wieso?

Beitrag lesen

Hallo @hmm,

Mein kompliziertes Daten-Objekt sieht so aus:

typedef std::map<std::string, int> StateCounter;
typedef std::vector<StateCounter> StateCounterVector;
struct TransitionCounter
{
	StateCounterVector stateCounters;
};

Fehlt da noch etwas oder ist geplant diese struct zu erweitern?

Eine solche StimmulationToTransitionMap möchte ich in ~Bla verwenden. Wie schaffe ich das?

Ich weiß leider nicht wann irgendEinKlasse::FunktionDieAufgerufenWird() das letzte mal aufgerufen wird und irgendEinKlasse wird sehr häufig erstellt und wieder vernichtet, jedesmal mit mehreren Funktionsaufrufen.

Beschreib mal bitte genauer, was du vorhast. Aus der bisherigen Problembeschreibung werde ich nicht schlau. Mir scheint ein konzeptionelles Problem vorzuliegen.

Was macht denn das Bla nach dem Ende der Klassendefinition? Es soll die Daten der StimulationToTransitionMap aufbereiten und in ein File schreiben.

Nein, ich meinte was das Bla – und nicht das ~Bla – nach dem Ende der Klassendefinition in deinem Quellcode macht, also warum

class Bla {} Bla;

statt

class Bla {};

Welchen Zweck hat die Klasse, wenn es keine sinnvollen Objekte davon gibt? Deine static-Attribute sind Klassenattribute, keine Klassenattribute. Ich brauche das Objekt um das Ende des Programms zu finden. Das liegt daran, dass irgendEinKlasse immer wieder gebaut und zerlegt wird und jedesmal die FunktionDieAufgerufenWird ausgelöst wird. Die FunktionDieAufgerufenWird schreibt man dann jedesmal weitere Daten in meine static Map.

Irgendwann verlässt dein Programm doch main, warum nutzt du nicht das?

Warum definiert die Klasse als einzige Methode den Destruktor? oben.

Ein konzeptionelles Problem, siehe oben.

Viele Grüße
Robert