🗊 Презентация Объектно-ориентированное программирование С++

Категория: Образование
Нажмите для полного просмотра!
Объектно-ориентированное программирование С++, слайд №1 Объектно-ориентированное программирование С++, слайд №2 Объектно-ориентированное программирование С++, слайд №3 Объектно-ориентированное программирование С++, слайд №4 Объектно-ориентированное программирование С++, слайд №5 Объектно-ориентированное программирование С++, слайд №6 Объектно-ориентированное программирование С++, слайд №7 Объектно-ориентированное программирование С++, слайд №8 Объектно-ориентированное программирование С++, слайд №9 Объектно-ориентированное программирование С++, слайд №10

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

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


Слайд 1


Объектно-ориентированное программирование С++. Лекция 8
Описание слайда:
Объектно-ориентированное программирование С++. Лекция 8

Слайд 2


ШАБЛОНЫ Предположим, что перед нами стоит задача создания списка элементов некоторого типа. Например, списка целых чисел. Реализация может выглядеть...
Описание слайда:
ШАБЛОНЫ Предположим, что перед нами стоит задача создания списка элементов некоторого типа. Например, списка целых чисел. Реализация может выглядеть примерно так: class List { int val; List *next; public: void add(List *e); void add(int n) { List *t = new List(n); add(t); } void print(void); List(int v0) { val = v0; next = NULL; }; }; void List::add(List *e) { List *t; for(t=this;t->next;t=t->next); t->next = e; } void List::print(void) { for(List *t=this;t;t=t->next) printf("%d ", t->val); }

Слайд 3


Понятие шаблона Введено в работе Б.Строуструпа "Parameterized Types for C++", 1988. Определение шаблона: объявление Объявление описывает...
Описание слайда:
Понятие шаблона Введено в работе Б.Строуструпа "Parameterized Types for C++", 1988. Определение шаблона: объявление Объявление описывает функцию или класс. Объявление может быть только глобальным. template class Vector { T* v; int sz; public: Vector(int n) { sz = n; v = new T[sz]; }; void sort(void); T& operator[](int i) { return v[i]; } }; Vector v1(20); Vector v2(10); typedef Vector CVector; Работа с именем шаблонного класса ведется так же, как и просто с именем класса. class SVector: public Vector {…}

Слайд 4


Шаблоны функций-членов template T&Vector::operator[](int i) {...}; template void Vector::sort(void) {...}; При использовании шаблонных функций на...
Описание слайда:
Шаблоны функций-членов template T&Vector::operator[](int i) {...}; template void Vector::sort(void) {...}; При использовании шаблонных функций на компилятор ложится работа по определению их реализации на основе анализа их типа. Vector cv(100); Vector ci(100); f(cv); //f(vector) f(ci); //f(vector)

Слайд 5


Шаблоны функций template T max(T a, T b) {return a>b?a:b;}; int a, b; char c, d; int m1 = max(a,b); //max(int, int) char m2 = max(c,d); //max(char,...
Описание слайда:
Шаблоны функций template T max(T a, T b) {return a>b?a:b;}; int a, b; char c, d; int m1 = max(a,b); //max(int, int) char m2 = max(c,d); //max(char, char) int m3 = max(a,c); // - ошибка: нельзя сгенерировать max(int, char)

Слайд 6


Ограничения Каждый параметр шаблона, заданный в списке параметров, должен быть использован в типах параметров шаблона функции. template T* create();...
Описание слайда:
Ограничения Каждый параметр шаблона, заданный в списке параметров, должен быть использован в типах параметров шаблона функции. template T* create(); // Ошибка template void f() { T a; … }; // Ошибка template class creator { static T* create(); } int *creator::create();

Слайд 7


Пример struct S { int a, b; }; template T* create() { T *a; a = new T; return a; } template class Ccreator { public: static T* create(); }; int...
Описание слайда:
Пример struct S { int a, b; }; template T* create() { T *a; a = new T; return a; } template class Ccreator { public: static T* create(); }; int *Ccreator::create() { int *n; n = new int; *n = 123; return n; }

Слайд 8


Примеры template class TList {public: T val; TList *next; void add(TList *e); void add(T n) { TList *t = new TList(n); add(t); } void print(void);...
Описание слайда:
Примеры template class TList {public: T val; TList *next; void add(TList *e); void add(T n) { TList *t = new TList(n); add(t); } void print(void); TList(T v0) { val = v0; next = NULL; }; }; template void TList::add(TList *e) { TList *t; for(t=this;t->next;t=t->next); t->next = e; } template void TList::print(void) { for(TList *t=this;t;t=t->next) printf("%d ", t->val); }

Слайд 9


Продолжение void main(void) { TList tl=1; tl.add(&TList(2)); TList *tpl = new TList(3); tl.add(tpl); tl.add(4); tl.print(); typedef TList CList;...
Описание слайда:
Продолжение void main(void) { TList tl=1; tl.add(&TList(2)); TList *tpl = new TList(3); tl.add(tpl); tl.add(4); tl.print(); typedef TList CList; CList cl=1; cl.add(&CList(2)); CList *cpl = new CList(3); cl.add(cpl); cl.add(4); cl.print(); TList ctpl = C(31); ctpl.add(32); ctpl.print(); print(ctpl); print(); //Ошибка: не найден образец для print() print(); //А вот так можно }

Слайд 10


Множество параметров Параметров шаблонов может быть несколько: template void print(A e, B x) { printf("%d %d", e.val, x); } template class...
Описание слайда:
Множество параметров Параметров шаблонов может быть несколько: template void print(A e, B x) { printf("%d %d", e.val, x); } template class L12 { T1 t1; T2 t2; }; ... print(ctpl, 1); L12 s;



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