Вы всегда включаете «class.h», а не «class.cpp».Это связано с тем, что #include
обрабатывается на этапе компиляции, а различные файлы .cpp объединяются на этапе компоновки.Точнее, каждый файл .cpp преобразуется в объектный файл, а затем они связываются.
Отсутствующие виртуальные методы являются результатом отсутствующего объектного файла.Мы знаем, что main.cpp есть, но компилируется ли «class.cpp»?