Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Крок 1. Успадкування батьківських методів.

Лекція 19

Тема : Абстрактні та віртуальні класи, віртуальні методи, віртуальний деструктор.

 

Зв'язування - це співставлення виклику функції з тілом. Для звичайних методів зв'язування виконується на етапі трансляції до запуску програми. Таке зв'язування називають "раннім" або статичним. При успадкування звичайного методу його поведінка не змінюється в нащадку. Але, буває необхідно, щоб поведінка деяких методів базавого класу і класів-нащадків відрізнялись. Щоб досягти різної поведінки в залежності від типу, необхідно оголосити функцію-метод віртуальною; в С++ це робиться за допомогою ключового клова virtual. Віртуальні функції разом з припципом підстановки забезпечують механізм "пізнього" (відкладеного) або динамічногозв'язування, яке працює під час виконання програми.

Часто механізм роботи віртуальних функцій плутають з механізмом перевизначення функцій в нащадках. Для того, щоб розібратися в чому ж різниця між перевизначеними і віртуальними методами, розглянемо простий приклад, попередньо розбивши його на кроки.

Опишемо базовий клас Base, в якому є функція print(), яка виводить повідомлення на екран, що працює функція базового класу. Успадкуємо клас Base в класі Derive. Зрозуміло, що функція print() успадкується з базового класу і працюватиме так само як і в ньому.

#include <iostream.h> #include <conio.h>   class Base // базовий клас { public: void print(); };   void Base::print() { cout<<endl<<"Base-print"<<endl; // базовий метод }   class Derive:public Base // похідний клас { };   int main(int argc, char* argv[]) { Base X; // об'єкт базового класу Derive Y; // об'єкт похідного класу   X.print(); // виклик базового методу Y.print(); // виклик базового методу   getch(); return 0; }


Читайте також:

  1. Аутосомно_рецесивний тип успадкування.
  2. Економічні методи як необхідна складова процесу раціоналізації природокористування, види методів.
  3. Застосування основних фізичних методів.
  4. Зчеплене успадкування.
  5. Зчеплене успадкування.
  6. Існує відповідна класифікація методів.
  7. Крок 2. Перезавизначення успадкованих бать- ківських методів.
  8. Одночасно з позбавленням батьківських прав суд може на вимогу позивача або за власною ініціативою вирішити питання про стягнення аліментів на дитину.
  9. Позбавлення батьківських прав
  10. Позбавлення батьківських прав.
  11. Право дарування, успадкування, обміну та застави земельних ділянок




Переглядів: 732

<== попередня сторінка | наступна сторінка ==>
Лекція 18 | Крок 2. Перезавизначення успадкованих бать- ківських методів.

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.016 сек.