= max;> next = curr;
} else
{> next = curr; = max;
}
// знайшли і змінили елемент = max;
} = curr-> next;
} while (curr-> next! = NULL);
};
} mlifo;
// створюємо стекc_lifo () {i = 0, t;. create_lifo (); {<<В«vvediteВ» <> t; + +;. set (t);
} while (t! = 0);
}; add_elem () {t; <<В«vvedite elementВ» <> t;. set (t);
} del_elem () {t; <<В«vvedite chislo dlya udaleniyaВ» <> t;. del_2 (t);
}; main ()
{i; flag = true; {
_flushall (); <<В«sozdat stek (1)В» <> i; (i) {1: c_lifo (); break; 2 : add_elem (); break; 3: mlifo.del_1 (); break; 4: mlifo.write_lifo (); break; 5: del_elem (); break; 6: mlifo.sort_lifo (); break; 0: flag = false ; break;
};
} while (flag); 0;
}
Контрольні запитання
) C + + посилання - це простий контрольний тип, менш потужний, але більш безпечний, ніж покажчик, успадкуванні від мови Сі.
Крім зручної заміни вказівниками, ще одним корисним застосуванням посилань є списки параметрів функції, за допомогою яких вони можуть передавати параметри, використовувані для висновку без явного взяття адреси зухвалим.
) new - оператор, що забезпечує виділення динамічної пам'яті в купі. За винятком форми, званої В«розміщає формою newВ», new намагається виділити достатньо пам'яті в купі для розміщення нових даних і, в разі успіху, повертає адресу свежевиделенних пам'яті. Однак, якщо new не може виділити пам'ять в купі, то він передасть (throw) виключення типу std: bad_alloc. Це усуває необхідність явної перевірки результату виделенія._var = new typename;
) У мові програмування C + + оператор delete повертає пам'ять, виділену оператором new, назад в купу. Виклик delete повинен відбуватися для кожного виклику new, щоб уникнути витоку пам'яті. Після виклику delete об'єкт, який вказує на цю ділянку пам'яті, стає некоректним і не повинен більше використовуватися. Багато програмістів присвоюють 0 (нуль-покажчик) вказівниками після використання delete, щоб мінімізувати кількість помилок програмування. Однак потрібно зазначити, що видалення нуль-покажчика фактично не має ефекту, так що немає необхідності перевіряти нуль-покажчик перед викликом delete * p_var = NULL;// оголошення нового указателя_var = new int;// пам'ять динамічно виділяється
/* .......
решті кодp_var;// пам'ять освобождается_var = NULL;// покажчик замінюється на 0 (нуль-покажчик)
Лабораторна робота № 4
Тема: Реалізація одиночного успадкування
Цілі роботи:
? вивчення наслідування, переваги та недоліки;
? вивчення композиції;
? вивчення правил визначення успадкування та композиції;
? вивчення форм спадкування;
? вивчення ініціалізаторів;
? принцип підстановки;
? спадкування і композиція - що вибрати.
Задача
а) Створити ієрархію класів гра - спортивна гра - волейбол . Визначити конструктори, деструктор, оператор присвоювання та інші необхідні функції. Продемонструвати роботу класів.
# include
# include namespace std; igra
{: kol_igrokof; (char * vid_igri, char * atributi, int kol_igrokof, char * vremya_igri) {(igra: vid_igri, vid_igri); (igra: atributi, atributi);> kol_igrokof = kol_igrokof ; (igra: vremya_igri, vremya_igri);};
show_spisok (void) {cout <
show_kol (int) {cout <
};
sport_play: public igra
{: _play (char * vid_igri, char * vremya_igri, char * tematika, int kol_igrokof, char * atributi): igra (vid_igri, atribu...