└── lab-cpp-05
├── Doxyfile
├── Makefile
├── README.md
├── doc
│ └── lab-cpp-05.md
├── test
│ └── test.cpp
└── src
├── list.hpp
└── main.cpp
- Зробити шаблоний клас-список (на базі динамічного масиву), що має шаблоноване поле масиву (для будь-якого існуючого типу даних)
- Створити наступні методи:
- вивод вмісту масиву на екран;
- визначити індекс переданого елемента в заданому масиві;
- відсортувати елементи масиву;
- визначити значення мінімального елемента масиву;
- додати елемент до кінця масиву;
- видалити елемент з масиву за індексом.
- програма має мати документацію, що оформлена за допомогою утиліти doxygen;
- робота повинна бути оформлена згідно "Вимогам до структурної побудови звіту";
- продемонструвати відсутність витоків пам’яті за допомогою утиліти valgrind;
- продемонструвати роботу розроблених методів за допомогою модульних тестів;
- у звіті навести ступень покриття коду модульними тестами. 50% - є мінімально допустимим відсотком покриття коду тестами;
- продемонструвати роботу розроблених методів за допомогою модульних тестів;
- не використовувати конструкцію "using namespace std;", замість цього слід робити "using" кожного необхідного класу, наприклад: using std::string, using std::cout;
- у проекті не повинні використовуватися бібліотеки введення / виведення мови C, а також не повинні використовуватися рядки типу
char*
.
- Для чого потрібні шаблони?
- Як описати шаблонну функцію?
- Як використовувати шаблонну функцію?
- Чим відрізняються шаблонні функції від звичайних функцій?
- Які дії виконує компілятор при виклику шаблонної функції?
- Що треба зробити, щоб як аргумент шаблонної функції можна було вказувати змінну класу?
- Які використовуються ключові слова для оголошення типу шаблонного аргументу?
- Для чого потрібні шаблонні класи?
- Як декларувати шаблонні класи?
- Що таке статичний поліморфізм?
- Що таке спеціалізація?
- Чи є шаблонними методи у шаблонному класі?