Cтраница 2
![]() |
Доступ к членам базового класса. [16] |
Виртуальная функция, объявленная с инициализатором 0 вместо тела функции, называется чистой виртуальной функцией. Класс, содержащий хотя бы одну чистую виртуальную функцию, называется абстрактным классом. [17]
Если класс является производным от класса с чистой виртуальной функцией и если эта чистая виртуальная функция не описана в производном классе, тогда функция остается чистой виртуальной и в производном классе. Следовательно, такой производный класс также является абстрактным классом. [18]
Если класс является производным от класса с чистой виртуальной функцией и если эта чистая виртуальная функция не определена в производном классе, то функция остается чистой виртуальной и в производном классе. [19]
Если класс является производным от класса с чистой виртуальной функцией и если эта чистая виртуальная функция не описана в производном классе, тогда функция остается чистой виртуальной и в производном классе. Следовательно, такой производный класс также является абстрактным классом. [20]
Определите перегруженную операцию передачи в поток для класса Shape, который просто вызывает чистую виртуальную функцию print. [21]
Абстрактный ( abstract) класс - это класс, все члены которого являются чистыми виртуальными функциями. В любом классе, порожденном от абстрактного класса, должны быть определены все функции-члены и любые необходимые приватные данные-члены; таким образом, по нашей терминологии абстрактный класс является интерфейсом, а любой класс, Порожденный от него, является реализацией. Программы-клиенты могут использовать интерфейс, а система C может обеспечить соблюдение соглашений между клиентами и реализациями, даже когда клиенты и реализации функций компилируются раздельно. [22]
Если нужно произвести еще один абстрактный класс, то можно заместить одну или две чистые виртуальные функции базового класса, либо не замещать их вообще. В случае наследования обычного неабстрактного класса необходимо заместить все три функции. [23]
Попытка создать объект абстрактного класса ( т.е. класса, который содержит хотя бы одну чистую виртуальную функцию) является синтаксической ошибкой. [24]
Правильно или ошибочно) Все виртуальные функции в абстрактном базовом классе должны быть объявлены как чистые виртуальные функции. [25]
В строках 5 - 14 объявляется класс абстрактного типа данных Shape с тремя ч - чистыми виртуальными функциями. Впрочем, для того чтобы класс стал ADT, достаточно было объявить в нем хотя бы один из методов как чистую виртуальную функцию. [26]
На этом занятии также было представлено объявление абстрактных типов данных и способы создания абстрактного класса с помощью чистых виртуальных функций. [27]
Остальные пять методов - SleepO, Eat (), ReproduceO, Move () и Speak () - объявлены как чистые виртуальные функции. [28]
Далее в программе все три функции базового класса замешаются в производных классах Circle и Rectangle, но одна из них - функция Draw () - выполняется как чистая виртуальная функция, поскольку в объявлении замещенного варианта функции в производных классах есть вызов исходной функции из базового класса. В результате выполнение этой функции в обоих производных классах приводит к выведению на экран одного и того же сообщения. [29]
Исходя из соображения, что все млекопитающие размножаются практически одинаково, имеет смысл в классе Mammal преобразовать метод ReproduceQ в обычный, оставив при этом методы Eat (), SleepQ и Move () чистыми виртуальными функциями. [30]