Намерение сделать функцию чистого virtual
в базовом классе является то, что производный класс должен переопределить его и обеспечить свою собственную реализацию.
Обратите внимание, что наличие чистой виртуальной функции в классе делает этот класс a Abstract class. Простыми словами класс действует как интерфейс для создания более конкретных классов. Один не может создавать объекты абстрактного класса.
Если вы не переопределите чистую виртуальную функцию в производном классе, тогда производный класс содержит только унаследованную чистую виртуальную функцию класса Base, и сам он также действует как абстрактный класс. Когда ваш производный класс является абстрактным, он не может быть создан.
Итак, чтобы ваш производный класс был создан, он должен переопределить и, следовательно, объявить чистую виртуальную функцию.
Означает ли это, что если я не переопределяю функцию в производном классе, компилятор не будет искать переопределяющую реализацию производного класса? – Michael
@ Майкл: Да, я думаю, это правильно. –