Сообщение об ошибке компоновщика показывает, что вы пытаетесь вызвать getSize из счетчика. Это, вероятно, скрыто в ваших "// некоторых других вещах". Пожалуйста, добавьте этот код тоже, потому что, скорее всего, проблема здесь root.
На данный момент я могу сказать, что вы не можете вызывать чисто виртуальную функцию struct Counter в конструкторе struct Counter.
Допустим, класс / структура Y наследуется от класса / структуры X, когда вы создаете экземпляр объекта типа Y, что происходит так:
- первый конструктор X называется
- тогда конструктор Y называется
Когда происходит шаг 1), часть объекта, представляющая класс Y, еще не создана, поэтому ни один из его методов еще не предназначен для выполнения.