Ich bin vor ein paar Tagen auf auf einen Codeschnipsel gestoßen der mich etwas irritiert hat. kann mich nicht mehr erinnern wo aber so in etwa:
Code: Alles auswählen
#include <stdio.h>
class A
{
public:
A() { printf("A()\n"); }
~A() { printf("~A()\n"); }
};
int main(int argc, char *argv[])
{
{
const A& a = A(); // <- Knackpunkt
printf("test\n");
}
getchar();
return 0:
}
Noch wilder wird die Sache, wenn man den Konstruktor von A auskommentiert. Dann wird mit VC der Destruktor zweimal aufgerufen, und zwar einmal vor und einmal nach printf("test\n").
Is zwar warscheinlich ned so arg wichtig, würd mich aber doch interessieren was da abläuft (oder eher "warum").