#include <stdio.h>
class dinamica1 {
static int num;
int id;
public:
dinamica1 () { printf ("Crea dinamica1 %d\n", id = ++num); };
dinamica1 (dinamica1& d) { printf ("Crea dinamica1 %d per copia\n",
id = ++num); };
dinamica1 (int i) { printf ("Crea dinamica1 %d da un intero (%d)\n",
id = ++num,i); };
~dinamica1 () { printf ("Distruggi dinamica1 %d\n", id); };
};
int dinamica1::num = 0;
void func (const dinamica1& d)
{
printf ("Chiamata di funzione func ()\n");
}
void main ()
{
dinamica1 d;
dinamica1 d2 (2);
dinamica1 d3 = d2;
for (int i = 0;i < 2;i ++)
{
printf ("Sto per chiamare func ()\n");
func (dinamica1 (4));
printf ("Ho chiamato func ()\n");
}
printf ("Fine di main\n");
}