|
|||||||||||||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
КОНСТРУКТОРИ ПОХІДНОГО КЛАСУ._____________________________________
У цьому конструкторі використана нова для нас можливість: ім'я функції, наступне за двокрапкою. Вона використовується конструктором класу COUNTDN для виклику конструктора Counter() базового класу. Коли ми запишемо у функції main() COUNTDN с1: компілятор створить об'єкт класу COUNTDN і викличе конструктор класу Counter для його ініціалізації. Конструктор у свою чергу викличе конструктор класу Counter, який виконає потрібні дії. Конструктор COUNTDN() може виконувати і свої операції, окрім виклику іншого конструктора, в нашому випадку це не потрібно, тому простір між дужками порожній. Виклик конструктора в списку ініціалізації може бути зайвим, але це має сенс. Ми хочемо ініціалізувати поле, не важливо, належить воно базовому або похідному класу, і перед виконанням будь-якого оператора програми спочатку будуть виконані операції конструктора. У рядку COUNTDN c2 (100); функції main() використовується конструктор класу COUNTDN з одним аргументом. Цей конструктор викликає відповідний конструктор з одним аргументом з базового класу: COUNTDN (int c): Counter (c) // параметр C передається в конструктор класу Counter Така конструкція означає, що аргумент С буде переданий від конструктора COUNTDN() у Counter(), де буде використаний для ініціалізації об'єкту. У функції main() після ініціалізації об'єктів с1 і с2 ми збільшуємо один з них і зменшуємо інший, а потім виводимо результат. Конструктор з одним аргументом також використовується у виразах привласнення: COUNTDN сз = --c2: Підсумок заняття: Спадкоємство є фундаментальною концепцією об'єктно-орієнтованого програмування. Виберіть час для експериментів з програмами, представленими в цьому уроці. І ви виявите, що реальне спадкоємство реалізується дуже просто і може зберегти величезні зусилля, що витрачаються на програмування. На даному занятті ми визначили такі основні концепції: Ø Якщо ваші програми використовують спадкоємство, то для породження нового класу необхідний базовий клас, тобто новий клас успадковує елементи базового класу. Ø Для ініціалізації елементів похідного класу ваша програма повинна викликати конструктори базового і похідного класів. Ø Використовуючи оператора крапку, програми можуть легко звертатися до елементів базового і похідного класів. Ø На додаток до загальних (public) (доступним всім) і приватних (private) (доступним методам класу) елементів C++ надає захищені (protected) елементи, які доступні базовому і похідному класам. Для вирішення конфлікту імен між елементами базового і похідного класів ваша програма може використовувати оператора глобального дозволу, указуючи перед ним ім'я базового або похідного класу.
Домашня робота: Додати бригадирів в програму emloyee. Створити нову програму, що включає об'єкти класу foreman. Клас foreman буде похідним класу laborer. Це показано на мал.
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.) |