Considerare seguente codiceQuando esattamente si chiama il distruttore in C++
int i;
class A
{
public:
~A()
{
i=10;
}
};
int foo()
{
i=3;
A ob;
return i;
}
int main()
{
cout << foo() << endl;
return 0;
}
Dal i
è globale, ho pensato che l'uscita di questo programma dovrebbe essere 10
. ob
, quando esce dall'ambito chiamerà il distruttore che dovrebbe impostare il valore di i
a 10
.
La parentesi '}' genera molto codice in C++ :) –
@HansPassant Mai fidarsi di una lingua in cui la parola chiave "blocco finale" è a sua volta Turing completa. ;-) – Sneftel