Hallo,
ich schreiben gerade an einem Programm in C++, und nach mehrmaligem Ausführen und Erzeugen neuer Instanzen (innerhalb des Programms), kam irgendwann die Meldung: "Wenig virtueller Speicher". Ui ui ui dachte ich.
Hatte natürlich meine Objekte nicht deleted.
Nun die Frage, was muss ich denn alles deleten?
//// 1. ////
Auch Objekte, die lokal innerhalb einer Methode mit new erzeugt wurden?
Also
void Test()
{
MyClass *mc = new MyClass();
// [...]
delete mc; // ????
}
Oder werden diese automatisch gelöscht?
//// 2. ////
Oder Objekte, die Eigenschaften einer Klasse sind?
class MyClass
{
MyClass2 *mc;
};
void MyClass::Methode()
{
mc->myMethod();
}
MyClass::~MyClass()
{
delete mc; // ???????
}
//// 3. ////
Objekte die NICHT als Referenz angelegt wurden?
void Method()
{
MyClass mc;
mc.Method();
// delete mc; ?????
}
//// 4. ////
Objekte, die Eigenschaften einer Klasse sind, aber nicht als Referenz angelegt sind.
class MyClass
{
MyClass2 mc2;
};
Bitte um Hilfe!
Danke,
Christian