Содержание
- 2. Понятие обобщенного программирования Обобщенным программированием называется создание универсального программного кода, инвариантного к типу обрабатываемых данных. Например:
- 3. Обобщенное программирование в С Макросы с параметрами - возможность простейшего обобщенного программирования функций Пример: функция выбора
- 4. Функция сортировки массива qsort() Выполняет сортировку массива данных любого типа base - указатель на сортируемый массив
- 5. Шаблоны классов. Параметризованные классы Контейнерные классы — классы, объединяющие атомарные объекты - элементы некоторого заданного типа.
- 6. Стек – описание класса class stack_char { public: stack_char(unsigned); ~stack_char(); void push(char); char pop(); unsiged size()
- 7. Стек – реализация методов #include “stack.h” #include #include stack_char::stack_char(unsigned sz) { if ((top=base=new char[max_size=sz])==NULL) { cerr
- 8. Стек – реализация методов (продолжение) void stack_char::push(char a) { if (size() == max_size) cerr *top++ =
- 9. Шаблон класса stack #ifndef __STACK_H #define __STACK_H template class stack { public: stack(unsigned); ~stack(); void push(const
- 10. Шаблоны методов класса stack #ifndef __STACK_HPP #define __STACK_HPP #include “stack.h” #include #include template stack ::stack(unsigned sz)
- 11. Шаблоны методов класса stack (продолжение) template void stack ::push(const T& a) { if (size() == max_size)
- 12. Использование шаблона класса stack #include “point.h” #include “stack.h” #include “stack.hpp” void main(void) { stack sch(100); stack
- 13. Параметры шаблонов Шаблон может иметь несколько параметров Параметры шаблона не обязательно являются именами типов Кроме имен
- 14. Параметры шаблонов template class stack { public: stack(); void push(const T&); T pop(void); unsigned size(void) const;
- 15. Параметры шаблонов #include template class stack ::stack() { top=base; } template void stack ::push(const T& a)
- 16. Использование #include “point.h” void main(void) { stack sch; stack sint1; stack sint2; stack sp; sch.push('A'); sint1.push(111);
- 18. Скачать презентацию