У вас уже есть ответ на вопрос, который вы задавали ранее: c-abstract-classes .
Я не собираюсь переписывать этот код, но если он не идеален, и он даетвы ошибки, то вам нужно сделать некоторую отладку.Часто люди пишут здесь код, который не на 100% свободен от ошибок.
Вам нужно запустить тот код, который был вам предоставлен, и задать СПЕЦИАЛЬНЫЙ вопрос о СПЕЦИАЛЬНОЙ ошибке.Опубликуйте, что вы пробовали и что вы пытаетесь сделать вместе с вашим кодом.