Оцените презентацию от 1 до 5 баллов!
Тип файла:
ppt / pptx (powerpoint)
Всего слайдов:
14 слайдов
Для класса:
1,2,3,4,5,6,7,8,9,10,11
Размер файла:
311.98 kB
Просмотров:
119
Скачиваний:
0
Автор:
неизвестен
Слайды и текст к этой презентации:
№1 слайд
Содержание слайда: Шаблонизация
№2 слайд
Содержание слайда: Шаблоны – создание универсальных функций или классов, которые будут работать с любыми типами данных
Пример встроенных шаблонов – vector<>, array<>, это и есть шаблоны, и нужный тип данных мы указываем при их создании внутри <char>
№3 слайд
Содержание слайда: Примеры, если забыли
Vector<int> mas1={1, 2, 3, 4};
Vector<char> mas2={‘q’, ’w’, ’e’, ’r’};
Vector<Button> mas3;
Выделенное зеленым это как раз то, что мы можем сделать с помощью шаблонов
№4 слайд
Содержание слайда: То есть шаблоны нужны чтобы сделать функцию/класс универсальным для любых типов данных.
С функциями мы могли сделать это с помощью перегрузки, но если функция делает одно и то же, с разными типами данных, то это сильно увеличивает объем кода
№5 слайд
Содержание слайда: Например:
№6 слайд
Содержание слайда: Чтобы упростить , мы можем создать шаблон, в котором описываем все типы данных(C++)
template <“параметры данных шаблона”>
“сама функция или класс, как обычно”
template <typename T>
void printArray(T *array, int count){
for(int i=0; i<count; i++){ cout<<array[i]<<‘ ‘;}
cout<<endl;
}
Использование:
printArray<int>( {1,2,3,4} , 4);//функция типа int
printArray<char>( {‘q’, ’w’, ‘e’} , 3); //тип char
auto printArray( {1.5, 5.1, 2.4} , 3);//автоматически решает
№7 слайд
Содержание слайда: Как параметры мы можем использовать ключевые слова typename или class и дальше любые название этих шаблонных типов данных
template<typename Type1, typename Type2>…
template<class C1>…
template<typename T1, typename T2, class C1>…
№8 слайд
Содержание слайда: Пример сортировки пузырьком с шаблоном и суммы 2х чисел
№9 слайд
Содержание слайда: С классами все то же самое, мы используем типы данных из шаблона в классе, чтобы сделать его универсальным. Например те же классы vector и array, в которых мы можем использовать массивы любых типов данных, используя один и тот же класс
№10 слайд
Содержание слайда: Пример классов без шаблонов, в каждом свой тип переменной
№11 слайд
Содержание слайда: А теперь то же самое с шаблоном, который будет работать для любых типов данных
№12 слайд
Содержание слайда: Шаблонные классы обычно нужны для хранения разных типов данных в массивах(как vector) или их обработки(например универсальный класс для реальзации стека, то есть 2х функций pop и push)
№13 слайд
Содержание слайда: Создавать объекты шаблонных классов можно аналогично vector, например для нашего класса Account:
Account<int> acc1(5);
Account<char> acc2(‘q’);
Account<Account<int>>(new Account(1));
№14 слайд
Содержание слайда: В C# использование и смысл шаблонов тот же, но записываются они даже проще, просто сразу после имени функции/класса в скобках <>