#include class statica1 { public: statica1 () { printf ("Crea Statica1\n"); }; ~statica1 () { printf ("Distruggi Statica1\n"); }; }; class automatica2 { public: automatica2 () { printf ("Crea automatica2\n"); }; ~automatica2 () { printf ("Distruggi automatica2\n"); }; }; class automatica3 { public: automatica3 () { printf ("Crea automatica3\n"); }; ~automatica3 () { printf ("Distruggi automatica3\n"); }; }; statica1 stat1; void HaAutomatica () { automatica2 au2; printf ("Chiamata di HaAutomatica ()\n"); { automatica3 au3; printf ("Blocco interno ()\n"); } printf ("Fine di HaAutomatica ()\n"); } void main () { printf ("Inizio Main\n"); for (int i = 0;i < 2; i++) { HaAutomatica (); } printf ("Fine Main\n"); }