Да , это одно и то же.В C ++ абстрактный метод - это просто еще один способ описания характеристик чисто виртуальной функции.И то, и другое означает просто метод без реализации, который должен быть реализован в подклассе, прежде чем класс будет фактически создан.
Ситуация с чисто виртуальными функциями и абстрактными классами в C ++ похожа, поскольку они по сути означают одно и то же.Любой абстрактный класс должен иметь хотя бы одну чисто виртуальную функцию, иначе он может быть создан и не будет абстрактным.Аналогично, любой класс, имеющий хотя бы одну чисто виртуальную функцию, должен быть абстрактным, поскольку его необходимо расширить, чтобы метод мог быть реально реализован.
Следовательно, класс является абстрактным тогда и только тогда, когда он содержит как минимум 1 чистую виртуальную функцию / абстрактный метод.
Позже такие языки, как Java и C #, сделали такие вещи более явными, позволив специальному ключевому слову определять абстрактный класс, а не чисто чисто виртуальную функцию.C ++ позволяет вам делать то же самое, что и эти языки, но они немного более откровенны в этом.: D