Warum ist der Destruktor nicht nach einem globalen Objekt gefordert?

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Warum ist der Destruktor nicht nach einem globalen Objekt gefordert?

by Anonymous » 11 Apr 2025, 13:14

Ich habe ein globales Objekt in derselben Quelldatei wie main (): < /p>
DSS::TraceControl traceControl{ std::source_location::current().file_name() };
< /code>
, das meine Anwendungsverfolgung vor main () startet. < /p>
Das funktioniert einwandfrei. Der DTOR sagt: < /p>
TraceControl::~TraceControl()
{
OutputDebugStringA("TraceControl destructor\n");
if (erase)
{
OutputDebugStringA("erase is true: Erasing trace file\n");
std::error_code ec;
fs::remove(file, ec);
if (ec)
{
OutputDebugStringA("Error removing trace file\n");
}
else
{
OutputDebugStringA("Trace file erased\n");
}

}
else
{
OutputDebugStringA("erase is false\n");
}
}
< /code>
Wenn ich das Programm ohne Debugger Active (Visual Studio oder Windbg) ausführe, wird der DTOR nicht ausgeführt, wenn ich die Anwendung schließe. Wenn ich jedoch unter einem Debugger und < /em> einen Breakpoint im dtor habe, ist es? Beenden Sie?>

Top