Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Системне програмне забезпечення.doc
Скачиваний:
8
Добавлен:
27.10.2018
Размер:
614.4 Кб
Скачать

Наследовние

Наследование (inheritance) - это процесс, посредством которого один объект может приобретать свойства другого. Точнее, объект может наследовать основные свойства другого объекта и добавлять к ним черты, характерные только для него. Наследование является важным, поскольку оно позволяет поддерживать концепцию иерархии классов (hierarchical classification). Применение иерархии классов делает управляемыми большие потоки информации. Например, подумайте об описании жилого дома. Дом - это часть общего класса, называемого строением. С другой стороны, строение - это часть более общего класса - конструкции, который является частью ещё более общего класса объектов, который можно назвать созданием рук человека. В каждом случае порождённый класс наследует все, связанные с родителем, качества и добавляет к ним свои собственные определяющие характеристики. Без использования иерархии классов, для каждого объекта пришлось бы задать все характеристики, которые бы исчерпывающи его определяли. Однако при использовании наследования можно описать объект путём определения того общего класса (или классов), к которому он относится, с теми специальными чертами, которые делают объект уникальным. Наследование играет очень важную роль в OOP.

  1. Оператори циклу мови С++. Оператор циклу з параметром.

Оператор організації циклів FOR має загальний вигляд:

FOR параметр := вираз 1 {to downto} вираз2 do {оператор};

де параметр – змінна цілого, символьного або перелічуваного типу;

      вираз 1, вираз 2 – відповідно початкове та кінцеве значення параметра (константа, змінна або вираз);

      оператор – простий або складний оператор (це, так зване, тіло циклу).

         Приклад:

For i=1 to 25 do A[i]:=0;

         У циклі FOR параметр завжди змінюється з кроком “один”. Якщо i – ціла зміна, то вона збільшується від 1 до 25. Якщо треба змінювати параметр, вживають слово downto.

         Приклад:

For i:=30 downto 5 do begin ….. End;

         У цьому випадку параметр i буде зменшуватись з кроком 1, при кожному значенні i виконується складний оператор.

         Приклад. Скласти програму для обчислення значень функції Y(x)

         Програма:

Var X : Array[1..4] of Real;

       A,B,Y : Real;

        I : Byte;

Begin

     Write(‘Введіть А і В :’); ReadLn(A,B);

     For I:=1 to 4 do

       Begin

          Write(‘Введіть X[’,I,’]=’); ReadLn(X[I]);

       End;

     For I:=1 to 4 do

       Begin

         Y:=A*SQR(X[I])+B;

         WriteLn(‘X=’,X[I], ‘Y=’,Y);

       End;

               End.

  1. С++ .Змінна значень фактичних параметрів за допомогою покажчиків і посилань.

Фактичний параметр, що відповідає параметру-змінній, може бути лише змінною. Усередині процедури або функції будь-яке посилання на формальний параметр-змінну дає доступ до самого фактичного параметра. Тип фактичного параметра повинний бути тотожний типу формального параметра-змінної (можна обминути це обмеження через нетипізовані параметри-змінні). Якщо типом формального параметра є тип String, то задається атрибут довжини, рівний 255, і фактичний параметр-змінна повинний мати рядковий тип з атрибутом довжини, рівним 255.

Якщо посилання на фактичний параметр-змінну пов'язано з індексуванням масиву або перебуванням об'єкта по його покажчику, то ці дії виконуються до активізації процедури або функції.

Коли формальний параметр є нетипізованим параметром-змінною, відповідний фактичний параметр може бути довільним посиланням на змінну незалежно від її типу.

Усередині процедури або функції нетипізований параметр-змінна не має типу, тобто він не сумісний зі змінними всіх інших типів, якщо йому не присвоєний визначений тип за допомогою приведення типу змінної.

ПРИКЛАД: використання нетипізованих параметрів-змінних:

Узагальнення по темі.

Мова ПАСКАЛЬ дозволяє користувачеві створювати власні допоміжні алгоритми. Розрізняють два види алгоритмів: процедури-оператори (далі просто процедури) та процедури-функції (далі просто функції). Вони дозволяють включати в основний програмний блок додаткові блоки команд. Процедура активізується за допомогою оператора процедури. Функція активізується при обчисленні виразу, що містить виклик цієї функції.

Блок опису процедур та функції не має спеціального службового слова для свого початку. Цей блок завжди розташовується останнім в описовій частині програми і починається оголошенням відповідного допоміжного алгоритму.

Оголошення допоміжного алгоритму складається з таких частин:

" заголовка ;

" розділу описів ;

" операторної частини (тіла) .

Заголовок містить ім'я допоміжного алгоритму та список формальних параметрів. Для функції потрібно вказати тип імені цієї функції, тому що воно є результатом її роботи. Існує три види параметрів: значення, змінна і нетипізована змінна. Розділ оголошень містить список локальних об'єктів (типів, констант, змінних), які будуть використовуватись даним алгоритмом. Операторна частина містить набір операторів, які складають тіло допоміжного алгоритму. Для функції обов'язково потрібно вказати хоча б один оператор присвоювання, в лівій частині якого вказується ім'я функції, а в правій - вираз, який задає результат її роботи.

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

Фактичними параметрами називаються ті параметри, які вказуються при викликові допоміжного алгоритму.

  1. Значення параметрів функції за замовчуванням. Локальні і глобальні змінні.

Обеспечить значения по умолчанию для параметров функции очень легко. Вы просто присваиваете значение параметру с помощью оператора присваивания С++ прямо при объявлении функции, как показано ниже:

void some_function(int size=12, float cost=19.95) //---->Значения по умолчанию

{    // Операторы функции }

Следующая программа DEFAULTS. CPP присваивает значения по умолчанию параметрам a, b и c внутри функции show_parameters. Затем программа четыре раза вызывает эту функцию, сначала не указывая параметров вообще, затем указывая значение только для а, потом значения для а и b и, наконец, указывая значения для всех трех параметров:

#include <iostream.h>

void show__parameters (int a=1, int b=2, int c=3)

{    cout << "a" << a << " b " << b << " с " << с << endl; }

void main(void)

{    show_parameters();    show_parameters(1001);    show_parameters(1001, 2002);    show_parameters(1001, 2002, 3003); }

Когда вы откомпилируете и запустите эту программу, на вашем экране появится следующий вывод:

С:> DEFAULTS <ENTER>

а 1 b 2 с 3

а 1001 b 2 с 3

а 1001 b 2002 с 3

а 1001 b 2002 с 3003

Как видите, если необходимо, функция использует значения параметров по умолчанию.