Содержание
- 2. Задача: отсортировать массив целых чисел и строк методом пузырька Вообще говоря, потребовалось бы создать 2 функции
- 3. # include "string.hpp“ #include “complex.hpp” // Функции-шаблоны template inline void Swap(T &a,T &b) { T c;
- 4. template void Bul_bul( T *a, int n) // улучшенный «пузырек» с флагом f { int i,
- 5. Как же будет работать компилятор? При вызове функций-шаблонов в зависимости от типов фактических аргументов компилятор создает
- 6. Примеры void main() { String s[5] = {"Петров",«Иванова",«Сидорова", “Иванов", «Петрова"}; int a[7] = {5, 3, 9,
- 7. Bul_bul(s, 5); // Генерируется экземпляр // void Bul_bul(String *, int ); cout for( i = 0;
- 8. cout for( i = 0; i out2(b[i], " "); // генерируется экземпляр // void out2(Complex, char
- 9. И это ещё не всё При порождении экземпляров функции- шаблона Bul_bul(...) компилятор сгенерирует также 2 функции
- 10. Программа будет работать при выполнении следующих условий: в классе String должна быть перегружена операция сравнения на
- 11. 10.2 Классы-шаблоны Так же, как и функции – шаблоны, могут быть определены и классы- шаблоны. Определение.
- 12. Формат определения класса-шаблона template class имя_класса { X определение ч-данных; Y определение ч-данных; ....... }; Здесь
- 13. Использование такого класса в функциях следующее: имя_класса имя_объекта[(аргументы конструктора)]; При компиляции для каждого списка типов данных,
- 14. Пример класса-шаблона Stack В стек кладутся целые и комплексные числа, строки. # include "string.hpp" # include
- 15. ~Stack() { delete [] a; } // деструктор Stack( Stack &); // конструктор // копирования Stack
- 16. Функции-предикаты bool Empty() // стек пуст? { if(n == 0) return true; return false; } bool
- 17. T Pop() // удалить элемент из стека { if ( ! Empty()) return a[ --n]; throw
- 18. Потоковый вывод friend ostream & operator Stack &b) { int i; if( b. Empty()){ r return
- 19. template Stack :: Stack (Stack & b) { int i; a = new T [max =
- 20. Full() template bool Stack :: Full() { f( n == max) return true; // да, заполнен
- 21. operator = template Stack & Stack :: operator = (Stack &b) { delete [] a; a
- 22. Примеры использования void main() { Stack c(5),cc;// cоздается экземпляр стека // для max=5 комплексных чисел Stack
- 23. a.Push(77); // число 77 => в стек целых чисел a.Push(9); // число 9 => в стек
- 25. Скачать презентацию