Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
derzh.docx
Скачиваний:
3
Добавлен:
17.09.2019
Размер:
10.8 Mб
Скачать

7, 26. Правила формування атрибутів доступу до членів похідного класу в залежності від атрибуту доступу базового класу та заданого атрибуту у списку спадкування.

Наведемо таблицю правил формування атрибутів доступу у похідному класі в залежності від атрибуту доступу у базовому класі та атрибуту доступу заданому у базовому списку.

Задано в базовому списку

Базовий клас

Похідний клас

private

private →

protected →

public →

private

private

private

protected

private →

protected →

public →

private

protected

protected

public

private →

protected →

public →

private

protected

public

Технічно специфікатор доступу у базовому списку не обов’язковий. Якщо специфікатор доступу не вказаний, а похідний клас визначений ключовим словом class,то базовий за замовчуванням спадкується як закритий. Якщо похідний клас визначений з ключовим словом struct, то базовий клас за замовчанням спадкується, як відкритий.

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

Приклад

#include <iostream> using namespace std; class base ( int x;

public :

void setx(int n) { x = n; }

void showxO { cout << x << '\n'; }

};

class derived: private base {

int y;

public:

void setxy(int n, int m) { setx(n); у = га; }

void showxyO { showxf); cout << у << '\n'; }

};

int main ()

{

derived ob;

ob.setxy(O, 20) ;

ob.showxy();

return 0;

}

8, 27. Вказівники та динамічна пам’ять. Аналіз методів виділення та звільнення динамічної пам’яті

.

9, 28. Аналіз методів передачі параметрів до підпрограм через локальні та нелокальні середовища

Call by value – передача параметрів за значенням.

В цьому випадку компілятор, обробляючи виклик, виконує такі дії:

1)записуються у стек результати обчислень (якщо цей список не порожній)

2)формується виклик функції з поверненням з неї (виклик типу near або far, в залежності від моделі пам’яті).

3)під час виконання функція читає копії даних зі стеку і виконує необхідні дії

Call by Reference – за значенням вказівника.

Функції зі змінною кількістю аргументів

Ознакою ф-ї зі змінною к-тю аргументів є лексема.

У цьому випадку компілятор припиняє аналіз аргументів.

1)перший аргумент – к-ть параметрів

2)код ‘\о’ – маркер того, що список вичерпано

Вся робота на правильність аргументів – робота програміста.

Передача аргументів за замовченням

В С можна в процесі опису задавати параметри за замовченням. Мають бути останніми у списку аргументів.

char func (char ch, int i, int k=5)

{/*тіло функції*/}

В цьому випадку виклики функцій можуть бути такими:

func (‘А’, 10)

для реалізації передачі імені ф-ї як аргументу використовуються вказівники на ф-ї. Для опису вказівника на ф-ю використовується така конструкція:

typedef void (*meny action*) ( )

meny action – вказівник на ф-ю, яка повертає тип void, що не має аргументів.

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

При передачі через нелокальні середовища (спільна область пам’яті) стек виключений з механізму передачі параметрів. Це прискорює виконання програми, але має недолік, який полягає в тому, що при наявності значної кількості файлів проекту, функцій, стежити за можливими варіантами модифікації глобальних змінних стає досить складно.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]