#include <iostream>
using namespace std;

class C
{
    //Staticka promenljiva brojac pamti koliko primeraka klase C je kreirano 
    public:
        static int brojac;
        //Staticka funkcija koja povecava vrednost statickoj promenljivoj
        static void povecaj()
        { brojac++; }

        //Staticka funkcija koja smanjuje vrednost statickoj promenljivoj
        static void smanji()
        { brojac--; }

        //Konstruktor, povecava brojac jer se kreira novi objekat
        C()
        { povecaj(); }

        //Destruktor, smanjuje brojac jer se unistava postojeci objekat
        ~C()
        { smanji(); }
};

//Inicijalizacija staticke promenljive
int C::brojac = 0;

main()
{
C q;
cout << q.brojac << endl;

C w;
w.povecaj();
C::povecaj();
cout << w.brojac << endl;

C* e = new C;
cout << e->brojac << endl;
delete e;
cout << C::brojac << endl;

{
C t;
cout << t.brojac << endl;
}

cout << C::brojac << endl;

return 0;
}

/* Izlaz iz programa
1
4
5
4
5
4
*/
