🗊Презентация Программирование. Variadic Templates. LSP

Нажмите для полного просмотра!
Программирование. Variadic Templates. LSP, слайд №1Программирование. Variadic Templates. LSP, слайд №2Программирование. Variadic Templates. LSP, слайд №3Программирование. Variadic Templates. LSP, слайд №4Программирование. Variadic Templates. LSP, слайд №5Программирование. Variadic Templates. LSP, слайд №6Программирование. Variadic Templates. LSP, слайд №7Программирование. Variadic Templates. LSP, слайд №8Программирование. Variadic Templates. LSP, слайд №9Программирование. Variadic Templates. LSP, слайд №10Программирование. Variadic Templates. LSP, слайд №11Программирование. Variadic Templates. LSP, слайд №12Программирование. Variadic Templates. LSP, слайд №13Программирование. Variadic Templates. LSP, слайд №14Программирование. Variadic Templates. LSP, слайд №15Программирование. Variadic Templates. LSP, слайд №16

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

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


Слайд 1





Осенний семестр 2018
Преподаватель: асс. каф. Чуканов В.С
Описание слайда:
Осенний семестр 2018 Преподаватель: асс. каф. Чуканов В.С

Слайд 2





Содержание
Variadic templates
Perfect Forwarding
LSP
Описание слайда:
Содержание Variadic templates Perfect Forwarding LSP

Слайд 3





Variadic Templates
Объявление переменного числа типов
template <typename …Args>
Объявление набора параметров типов, заданных Args
double f(Args... args)
Распаковка кортежа параметров
g(args...);
Описание слайда:
Variadic Templates Объявление переменного числа типов template <typename …Args> Объявление набора параметров типов, заданных Args double f(Args... args) Распаковка кортежа параметров g(args...);

Слайд 4





Распаковка кортежа
Описание слайда:
Распаковка кортежа

Слайд 5





Распаковка кортежа (2)
Описание слайда:
Распаковка кортежа (2)

Слайд 6





Распаковка кортежа (3)
Описание слайда:
Распаковка кортежа (3)

Слайд 7





Использование лямбда
Список захвата лямбда-функции может принимать кортеж типов
Описание слайда:
Использование лямбда Список захвата лямбда-функции может принимать кортеж типов

Слайд 8





Пример: Сумма
Описание слайда:
Пример: Сумма

Слайд 9





Пример №2
Описание слайда:
Пример №2

Слайд 10





Принцип LSP
Принцип подстановки Барбары Лисков
Liskov substitution principle, 1987
Если  то  
Всякий объект базового класса должен быть заменяем наследником с сохранением корректности семантики оперирующего кода
Описание слайда:
Принцип LSP Принцип подстановки Барбары Лисков Liskov substitution principle, 1987 Если то Всякий объект базового класса должен быть заменяем наследником с сохранением корректности семантики оперирующего кода

Слайд 11





LSP: Пример
Геометрические фигуры: прямоугольник, квадрат
Квадрат – более «специализированное» определение прямоугольника
Методы Set/GetWidth, Set/GetHeight, GetArea()
Квадрат –> w == h ?
Описание слайда:
LSP: Пример Геометрические фигуры: прямоугольник, квадрат Квадрат – более «специализированное» определение прямоугольника Методы Set/GetWidth, Set/GetHeight, GetArea() Квадрат –> w == h ?

Слайд 12





LSP: Реализация Rectangle (1)
Описание слайда:
LSP: Реализация Rectangle (1)

Слайд 13





LSP: Реализация Rectangle (2)
Описание слайда:
LSP: Реализация Rectangle (2)

Слайд 14





LSP: Реализация Quad
Описание слайда:
LSP: Реализация Quad

Слайд 15





Нарушение LSP
Ошибки проектирования иерархии
При реализации Quad потребовалось сделать изменения в базовом Rectangle (+ virtual)
Семантика методов базового класса поменялась
Ранее разделенные методы стали зависимы
Quad не является Rectangle в данном контексте
Описание слайда:
Нарушение LSP Ошибки проектирования иерархии При реализации Quad потребовалось сделать изменения в базовом Rectangle (+ virtual) Семантика методов базового класса поменялась Ранее разделенные методы стали зависимы Quad не является Rectangle в данном контексте

Слайд 16





Заключение
Variadic templates
Мощный инструмент создания прототипов для кортежей типов
LSP
Подстановка наследника вместо базового не должна менять семантику оперирующего кода
Описание слайда:
Заключение Variadic templates Мощный инструмент создания прототипов для кортежей типов LSP Подстановка наследника вместо базового не должна менять семантику оперирующего кода



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