In meinen Vorträgen sehe ich niemanden, der den Destruktor zum Zurücksetzen von Werten auf seine Startparameter verwendet, sondern jede Variable manuell in der Funktion ausführt. Wird für Reseting in einer Klasse-Funktion ein destructor mit/Löschen alle Probleme verursachenIst es in Ordnung, den Destruktor innerhalb der Funktion einer Klasse zu verwenden, um Werte zurückzusetzen?
Kleines Beispiel dafür, was ich meine:
class Test1{
private:
int *test;
bool valid;
public:
Test1(int value,bool valid=false){
test=new int(value); this->valid=valid;
}
~Test1(){
delete test; test=nullptr; valid=false;
}
void ResetStats(int NewValue){
this->~Test1();
test1=new int(NewValue);
valid=false;
}
}
'neuer int (NewValue)' wirft 'std :: bad_alloc'. Der Code namens ResetStats fängt ihn ab. Aber irgendwie ist das Objekt Toast und sie können nicht mehr damit arbeiten, auch wenn sie sich erholen können. – StoryTeller
oder [Aufruf destructor ausdrücklich] (https://stackoverflow.com/questions/16720201/calling-destructor-explicitly) –
„In meinen Vorlesungen I-Werte nicht, dass jemand mit dem destructor sehen für Reseting dort Startparameter“ - denn das sind keine Destruktoren, das machen Konstruktoren. –