Cтраница 2
![]() |
Абстрактный базовый класс Employee ( часть 1 из 12. [16] |
Класс Boss ( рис. 20.1, части 3 и 4) выведен из класса Employee с открытым наследованием. Открытые функции-элементы этого класса включают в себя конструктор, который имеет параметры: имя, фамилию и еженедельное жалованье, и передает имя и фамилию конструктору класса Employee, который присваивает значения элементам-данным firstName и lastName ( наследуемым производными классами); set - функцию, присваивающую новое значение закрытому элементу данных weeklySalary; виртуальную функцию earnings вычисления дохода служащего Boss; виртуальную функцию print, которая выводит категорию служащего и его имя. [17]
![]() |
Определение функций-элементов класса CommissionWorker ( часть 6 из 12.| Производный класс Pieceworker от абстрактного базового класса Employee. [18] |
Класс Pieceworker ( рис. 20.1, части 7 и 8) выведен из класса Employee с открытым наследованием. Открытые функции-элементы этого класса - конструктор с параметрами: имя, фамилия, плата за единицу произведенной продукции и количество произведенной продукции, который передает имя и фамилию конструктору класса Employee для инициализации наследуемых из базового класса элементов-данных firstName и lastName; set - функции, используемые для присвоения значений закрытым элементам данных wagePerPiece и quantity; виртуальная функция earnings начисления заработка работнику типа Pieceworker и виртуальная функция print, которая выводит тип служащего, его имя и фамилию. [19]
Класс ComissionWorker ( части 5 и 6 рис. 10.1) является производным от класса Employee открытым наследованием. Открытые функции-элементы включают: конструктор, который принимает в качестве аргументов имя, фамилию, базовую недельную заработную плату, комиссионное вознаграждение и количество проданных изделий, а также передает имя и фамилию конструктору Employee; функцию set, которая присваивает новые значения скрытым данным-элементам salary, comission и quantity; виртуальную функцию earnings, в которой определено, как начислять заработную плату в классе ComissionWorker; виртуальную функцию print, которая выводит тип служащего и его имя. [20]
![]() |
Определение функций-элементов класса Boss ( часть 4 из 12. [21] |
Класс Commission Worker ( рис. 20.1, части 5 и 6) является производным базового класса Employee с открытым наследованием. Открытые функции-элементы класса включают: конструктор, который имеет в качестве параметров имя, фамилию, жалованье, комиссию и количество проданных товаров и передает имя и фамилию конструктору класса Employee для инициализации наследуемых данных-элементов базового класса firstName и lastName; set - функции, присваивающие новые значения закрытым элементам данных salary, commission и quantity; виртуальную функцию earnings, определяющую порядок начисления жалованья работника Commission Worker, и виртуальную функцию print, которая выводит категорию служащего, его имя и фамилию. [22]
Элементы-данные х и у класса Point указаны как защищенные - protected. Это не позволяет пользователям объектов класса Point иметь прямой доступ к данным, но разрешает его производным классам непосредственно обращаться к унаследованным элементам данных. Если бы эти данные были определены как закрытые - private, то для доступа к данным нужно было бы вызывать открытые функции-элементы класса Point. Заметьте, что функция перегруженной операции передачи в поток объекта Point ( рис. 19.4, часть 2) может прямо ссылаться на переменные х и у несмотря на то, что они - защищенные элементы класса Point. [23]