Открытые функции-элемент - Большая Энциклопедия Нефти и Газа, статья, страница 1
Если ты закладываешь чушь в компьютер, ничего кроме чуши он обратно не выдаст. Но эта чушь, пройдя через довольно дорогую машину, некоим образом облагораживается, и никто не решается критиковать ее. Законы Мерфи (еще...)

Открытые функции-элемент

Cтраница 1


1 Абстрактный базовый класс Employee ( часть 1 из 12. [1]

Открытые функции-элементы включают: конструктор, который принимает в качестве аргументов имя и фамилию; деструктор, который освобождает динамически выделенную память; функцию доступа get, которая возвращает имя; функцию доступа get, которая возвращает фамилию; две чистые виртуальные функции earnings и print. Почему эти функции объявлены чистыми виртуальными. Ответ состоит в том, что не имеет никакого смысла реализовывать эти функции в классе Employee. Мы не можем начислять заработную плату абстрактному служащему: мы должны, сначала определить тип служащего; мы не можем также печатать заработную плату абстрактного служащего. Делая эти функции чистыми виртуальными, мы показываем, что они должны быть реализованы в производных классах, а не в базовом.  [2]

3 Демонстрация последовательности, в которой вызываются конструктор и деструктор. [3]

Классы часто предусматривают открытые функции-элементы, позволяющие клиентам класса устанавливать ( т.е. записывать) или получать ( т.е. читать) значения закрытых данных-элементов. Эти функции можно не называть конкретно set или get, но все же часто применяют именно эти названия.  [4]

Одной из проблем наследования является то, что производный класс может наследовать открытые функции-элементы, когда в этом нет необходимости или когда это недопустимо. Имеется возможность избежать этого. Когда какой-то элемент базового класса не подходит для задач производного класса, этот элемент может быть соответствующим образом переопределен в производном классе.  [5]

Одна проблема с наследованием заключается в том, что производный класс может наследовать открытые функции-элементы, которые не нужно или не следовало бы иметь в потомстве явно. Если какой-нибудь элемент базового класса не подходит для производного класса, этот элемент может быть переопределен в самом производном классе с соответствующей реализацией.  [6]

7 Ошибочная попытка доступа к закрытым элементам класса. [7]

Программа на рис. 6.6 демонстрирует, что закрытые элементы класса доступны только через открытый интерфейса класса, включающий открытые функции-элементы. Во время компиляции этой программы компилятор выдает две ошибки, объявляющие, что закрытые элементы, указанные в каждом операторе, недоступны.  [8]

9 Дерево двоичного поиска с 12-тью узлами. [9]

Скрытое наследование позволяет повторно использовать часть кода базового класса для создания структуры данных производного класса; поскольку это наследование является скрытым, то открытые функции-элементы базового класса становятся закрытыми в производном класса. Это, в свою очередь, препятствует произвольному доступу объектов производного класса к таким функциям-элементам базового класса, которые в производном классе не применяются.  [10]

Композиция позволяет повторно использовать код путем создания объектов классов структур данных, являющихся элементами составного класса; если мы создадим закрытый объект-элемент составного класса, то в этом случае открытые функции-элементы объектов не будут доступны через интерфейсы этих скомпонованных объектов.  [11]

12 Определения функций-элементов класса ComissionWorker ( часть б из 12.| Класс Pieceworker, производный от абстрактного базового класса Employee. [12]

Класс Pieceworker ( рис. 10.1, части 7 и 8) является производным от класса Employee с открытым наследованием. Открытые функции-элементы включают: конструктор, который принимает в качестве аргументов имя, фамилию, оплату за единицу продукции и количество произведенной продукции за неделю, а также передает имя и фамилию конструктору Employee; функцию set, которая присваивает новые значения скрытым данным-элементам wagePerPiece и quantity; виртуальную функцию earnings, в которой определено, как начислять заработную плату в классе Pieceworker; виртуальную функцию print, которая выводит тип служащего и его имя.  [13]

14 Определения функций-элементов класса HourlyWorker ( часть 10 из 12. [14]

Класс HourlyWorker ( рис. 10.1, части 9 и 10) является производным от класса Employee с открытым наследованием. Открытые функции-элементы включают: конструктор, который принимает в качестве аргументов имя, фамилию, почасовую оплату и количество отработанных часов, а также передает имя и фамилию конструктору Employee; функцию set, которая присваивает новые значения скрытым данным-элементам wage и hours; виртуальную функцию earnings, в которой определено, как начислять заработную плату в классе HourlyWorker; виртуальную функцию print, которая выводит тип служащего и его имя.  [15]



Страницы:      1    2