Создаётся переменная temp типа Counter, и для нее вызывается
копирующий конструктор, делающий из нее точную копию переменной *this.
Копирующий конструктор
Код:
Counter::Counter(Counter сделай_новый_каунтер_таким_же_как_этот)
не задан явно, и поэтому компилятор реализует его самостоятельно как умеет.
То есть идея примерно такая же, как выше в фразе itsVal(0) в обычном конструкторе.