Globale StringList freigeben?
-
Hi,
da ich nicht allen code in einer datei programmieren möchte, arbeite ich mit mehreren. In der datei werden nur variablen und funktionen erzeugt. allerdings handelt es sich um globale variable. da ich diverse stringlisten brauche, muss ich einige variablen dynamisch erzeugen, wie man meinem beispiel sieht (test). nur wie kann ich eine global dynamisch erzeugt variable wieder freigeben? muss ich die freigeben?
parser.cpp
#include <vcl.h> #pragma hdrstop #include "main.h" #include "parser.h" // Variablen mit den Informationen String titel; String sprache; TStrings *test = new TStringList(); void __fastcall GetInformation(String filename) { ... }Wäre nett wenn mir jemand sagen könnte ob ich das so lassen kann oder ob das nicht so gut ist.
Manuel
-
Hallo
ich halte die globalen Variablen für nicht sehr gut, aber wenn du es willst...
Ich arbeite lieber mit Klassen bzw. Parameterwerten.
Schreib doch eine korrespondierende CloseInformation();, in der du die Stringliste der delete löscht. Nach dem Durchlauf des Programms führst du diese Funktion aus.Man muß solche Variablen nicht löschen, ist aber sauberer.
bis bald
akari
-
Du könntest das delete in den Destruktor oder in OnDestroy des Hauptformulars schreiben. Wie aber schon gesagt sollte man globale Variablen grundsätzlich vermeiden.
Wenn sie absolut unumgänglich sind verwendet man normalerweise ein Singleton.