Abstract Классы в C ++

Abstract Классы в C ++ - манекены

Поскольку интеллектуальное удовлетворение как факторинга происходит на C ++, оно вводит проблему самостоятельно. В примере о классах банковских счетов, в частности, об общем базовом классе Аккаунт. Подумайте немного о том, как вы можете определить различные функции-члены, определенные в Учетная запись.

Большинство функций учетной записи не являются проблемой, так как оба типа учетных записей реализуют их одинаково. Однако выполнение этих общих функций с Аккаунтом :: отзыв () отличается.

Правила выхода из сберегательного счета отличаются от правил снятия с расчетного счета. Вам нужно будет выполнить Сбережения:: вывод () иначе, чем вы. Проверка:: вывод () . Но как вы должны реализовать Учетную запись:: вывод ()?

Давайте попросим менеджера банка о помощи. Разговор может выглядеть примерно так:

«Каковы правила выхода из учетной записи? " ты спрашиваешь.

«Какой тип учетной записи? Экономия или проверка? - приходит ответ.

«Из учетной записи», - говорите вы. «Просто учетная запись. "

Пустой взгляд.

Проблема в том, что вопрос не имеет смысла. Нет такой вещи, как «просто учетная запись. «Все учетные записи (в этом примере) - это либо учетные записи, либо сберегательные счета. Концепция учетной записи является абстрактной, которая определяет свойства, общие для двух конкретных классов.

Он неполный, потому что ему не хватает критического отказа собственности () . (После того, как вы подробно расскажете о деталях, вы можете найти другие свойства, которые отсутствуют в простой учетной записи.)

абстрактный класс - это тот, который существует только в подклассах. A конкретный класс - это класс, который не является абстрактным.