Wie stellt C++ sicher, dass Destruktoren für stack-assigned-Objekte aufgerufen werden? Was geschieht mit der Destruktor-Funktion (oder einen Zeiger darauf), wenn I dynamischen Speicher zuweisen, wie folgt:Mit welchem Mechanismus werden Destruktoren für stack-assigned Objekte aufgerufen?
class MyClass {
public:
~MyClass()
{
std::cout<<"Destructor called."<<std::endl;
}
MyClass()
{
std::cout<<"Constructor called."<<std::endl;
}
};
....................................................................
//Limit scope for example
{
MyClass instance;
}
Der Konstruktor und destructor beide genannt. Was ist denn hier los?
Beispiel ist der Name des Objekts. instance() ist einfach ein Aufruf an das no-Argument ctor der Klasse.Die Parens sind in diesem Fall unnötig, aber es ist sicherlich kein Aufruf einer Methode namens instance(). – dicroce
Ich sehe keine dynamische Speicherzuweisung. –