Parameterized class stack example by Dave

class stack #(type T = int);
 static int counter=1;
 int m_cnt;
 function new; 
m_cnt = counter++; endfunction
 endclass : stack
 typedef stack #(byte) stack_byte;
 typedef stack#() stack_int;
 stack_byte S1 = new(), S2 = new();
 stack S3 = new();
 class stacked extends stack#(real);

How many counter are allocated?
Dave said 4 in the video.
But I think there are only 3 since stack equals to stack#() which equals to stack_int

There should be 3

stack#(int)::counter
stack#(byte)::counter
stack#(real)::counter