🗊Презентация Шаблонизация функций и классов

Нажмите для полного просмотра!
Шаблонизация функций и классов, слайд №1Шаблонизация функций и классов, слайд №2Шаблонизация функций и классов, слайд №3Шаблонизация функций и классов, слайд №4Шаблонизация функций и классов, слайд №5Шаблонизация функций и классов, слайд №6Шаблонизация функций и классов, слайд №7Шаблонизация функций и классов, слайд №8Шаблонизация функций и классов, слайд №9Шаблонизация функций и классов, слайд №10Шаблонизация функций и классов, слайд №11Шаблонизация функций и классов, слайд №12Шаблонизация функций и классов, слайд №13Шаблонизация функций и классов, слайд №14

Вы можете ознакомиться и скачать презентацию на тему Шаблонизация функций и классов. Доклад-сообщение содержит 14 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Шаблонизация
Описание слайда:
Шаблонизация

Слайд 2





Шаблоны – создание универсальных функций или классов, которые будут работать с любыми типами данных
Пример встроенных шаблонов – vector<>, array<>, это и есть шаблоны, и нужный тип данных мы указываем при их создании внутри <char>
Описание слайда:
Шаблоны – создание универсальных функций или классов, которые будут работать с любыми типами данных Пример встроенных шаблонов – vector<>, array<>, это и есть шаблоны, и нужный тип данных мы указываем при их создании внутри <char>

Слайд 3





Примеры, если забыли
Vector<int> mas1={1, 2, 3, 4};
Vector<char> mas2={‘q’, ’w’, ’e’, ’r’};
Vector<Button> mas3;
Выделенное зеленым это как раз то, что мы можем сделать с помощью шаблонов
Описание слайда:
Примеры, если забыли 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);//автоматически решает
Описание слайда:
Чтобы упростить , мы можем создать шаблон, в котором описываем все типы данных(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>…
Описание слайда:
Как параметры мы можем использовать ключевые слова typename или class и дальше любые название этих шаблонных типов данных template<typename Type1, typename Type2>… template<class C1>… template<typename T1, typename T2, class C1>…

Слайд 8





Пример сортировки пузырьком с шаблоном и суммы 2х чисел
Описание слайда:
Пример сортировки пузырьком с шаблоном и суммы 2х чисел

Слайд 9





С классами все то же самое, мы используем типы данных из шаблона в классе, чтобы сделать его универсальным. Например те же классы vector и array, в которых мы можем использовать массивы любых типов данных, используя один и тот же класс
Описание слайда:
С классами все то же самое, мы используем типы данных из шаблона в классе, чтобы сделать его универсальным. Например те же классы vector и array, в которых мы можем использовать массивы любых типов данных, используя один и тот же класс

Слайд 10





Пример классов без шаблонов, в каждом свой тип переменной
Описание слайда:
Пример классов без шаблонов, в каждом свой тип переменной

Слайд 11





А теперь то же самое с шаблоном, который будет работать для любых типов данных
Описание слайда:
А теперь то же самое с шаблоном, который будет работать для любых типов данных

Слайд 12





Шаблонные классы обычно нужны для хранения разных типов данных в массивах(как vector) или их обработки(например универсальный класс для реальзации стека, то есть 2х функций pop и push)
Описание слайда:
Шаблонные классы обычно нужны для хранения разных типов данных в массивах(как vector) или их обработки(например универсальный класс для реальзации стека, то есть 2х функций pop и push)

Слайд 13





Создавать объекты шаблонных классов можно аналогично vector, например для нашего класса Account:

Account<int> acc1(5);
Account<char> acc2(‘q’);
Account<Account<int>>(new Account(1));
Описание слайда:
Создавать объекты шаблонных классов можно аналогично vector, например для нашего класса Account: Account<int> acc1(5); Account<char> acc2(‘q’); Account<Account<int>>(new Account(1));

Слайд 14





В C# использование и смысл шаблонов тот же, но записываются они даже проще, просто сразу после имени функции/класса в скобках <>
Описание слайда:
В C# использование и смысл шаблонов тот же, но записываются они даже проще, просто сразу после имени функции/класса в скобках <>



Похожие презентации
Mypresentation.ru
Загрузить презентацию