🗊Презентация Наследование. Классы в С++

Нажмите для полного просмотра!
Наследование. Классы в С++, слайд №1Наследование. Классы в С++, слайд №2Наследование. Классы в С++, слайд №3Наследование. Классы в С++, слайд №4Наследование. Классы в С++, слайд №5Наследование. Классы в С++, слайд №6Наследование. Классы в С++, слайд №7Наследование. Классы в С++, слайд №8Наследование. Классы в С++, слайд №9Наследование. Классы в С++, слайд №10Наследование. Классы в С++, слайд №11Наследование. Классы в С++, слайд №12Наследование. Классы в С++, слайд №13Наследование. Классы в С++, слайд №14Наследование. Классы в С++, слайд №15Наследование. Классы в С++, слайд №16Наследование. Классы в С++, слайд №17Наследование. Классы в С++, слайд №18Наследование. Классы в С++, слайд №19Наследование. Классы в С++, слайд №20Наследование. Классы в С++, слайд №21Наследование. Классы в С++, слайд №22Наследование. Классы в С++, слайд №23Наследование. Классы в С++, слайд №24Наследование. Классы в С++, слайд №25Наследование. Классы в С++, слайд №26Наследование. Классы в С++, слайд №27Наследование. Классы в С++, слайд №28Наследование. Классы в С++, слайд №29Наследование. Классы в С++, слайд №30Наследование. Классы в С++, слайд №31Наследование. Классы в С++, слайд №32Наследование. Классы в С++, слайд №33Наследование. Классы в С++, слайд №34Наследование. Классы в С++, слайд №35Наследование. Классы в С++, слайд №36Наследование. Классы в С++, слайд №37Наследование. Классы в С++, слайд №38Наследование. Классы в С++, слайд №39Наследование. Классы в С++, слайд №40

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

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


Слайд 1


Наследование. Классы в С++, слайд №1
Описание слайда:

Слайд 2


Наследование. Классы в С++, слайд №2
Описание слайда:

Слайд 3


Наследование. Классы в С++, слайд №3
Описание слайда:

Слайд 4


Наследование. Классы в С++, слайд №4
Описание слайда:

Слайд 5


Наследование. Классы в С++, слайд №5
Описание слайда:

Слайд 6


Наследование. Классы в С++, слайд №6
Описание слайда:

Слайд 7


Наследование. Классы в С++, слайд №7
Описание слайда:

Слайд 8


Наследование. Классы в С++, слайд №8
Описание слайда:

Слайд 9


Наследование. Классы в С++, слайд №9
Описание слайда:

Слайд 10


Наследование. Классы в С++, слайд №10
Описание слайда:

Слайд 11


Наследование. Классы в С++, слайд №11
Описание слайда:

Слайд 12


Наследование. Классы в С++, слайд №12
Описание слайда:

Слайд 13





Одноименные поля в производном и базовых классах
Описание слайда:
Одноименные поля в производном и базовых классах

Слайд 14


Наследование. Классы в С++, слайд №14
Описание слайда:

Слайд 15





Виртуальные функции
Описание слайда:
Виртуальные функции

Слайд 16


Наследование. Классы в С++, слайд №16
Описание слайда:

Слайд 17


Наследование. Классы в С++, слайд №17
Описание слайда:

Слайд 18


Наследование. Классы в С++, слайд №18
Описание слайда:

Слайд 19


Наследование. Классы в С++, слайд №19
Описание слайда:

Слайд 20


Наследование. Классы в С++, слайд №20
Описание слайда:

Слайд 21


Наследование. Классы в С++, слайд №21
Описание слайда:

Слайд 22


Наследование. Классы в С++, слайд №22
Описание слайда:

Слайд 23





Абстрактные классы. Чистые виртуальные функции.
Описание слайда:
Абстрактные классы. Чистые виртуальные функции.

Слайд 24


Наследование. Классы в С++, слайд №24
Описание слайда:

Слайд 25


Наследование. Классы в С++, слайд №25
Описание слайда:

Слайд 26


Наследование. Классы в С++, слайд №26
Описание слайда:

Слайд 27


Наследование. Классы в С++, слайд №27
Описание слайда:

Слайд 28


Наследование. Классы в С++, слайд №28
Описание слайда:

Слайд 29





Виртуальные конструкторы
Сначала, чтобы не возникло путаницы, следует сделать оговорку - виртуальных конструкторов не существует, они запрещены правилами языка. То, о чем пойдет речь сейчас - как с помощью обычных функций добиваться того же результата, какой можно было бы ожидать от виртуальных конструкторов. Но прежде всего попробуем разобраться, для чего нужны виртуальные конструкторы. 
В чистом виде виртуальный конструктор - вещь нелепая. Раз уж мы создаем объект, то не абы какой, а какого-то конкретного типа. Другое дело, что мы можем не знать, какого именно - просто у нас есть (какой-то) объект, и мы хотим сделать точно такой же. Или даже не просто сделать, но и скопировать в него начинку старого. Первая операция похожа на конструктор по умолчанию, вторая - на копирующий конструктор. Но, поскольку точный тип образца нам неизвестен, приходится проделывать это с помощью обычных виртуальных функций. 
Так что, когда говорят о виртуальных конструкторах, всегда имеют в виду задачу создания объектов по существующему образцу. Ведь у каждого образцового объекта есть какой-то вполне определенный тип, даже если мы и не знаем, какой именно.
Описание слайда:
Виртуальные конструкторы Сначала, чтобы не возникло путаницы, следует сделать оговорку - виртуальных конструкторов не существует, они запрещены правилами языка. То, о чем пойдет речь сейчас - как с помощью обычных функций добиваться того же результата, какой можно было бы ожидать от виртуальных конструкторов. Но прежде всего попробуем разобраться, для чего нужны виртуальные конструкторы. В чистом виде виртуальный конструктор - вещь нелепая. Раз уж мы создаем объект, то не абы какой, а какого-то конкретного типа. Другое дело, что мы можем не знать, какого именно - просто у нас есть (какой-то) объект, и мы хотим сделать точно такой же. Или даже не просто сделать, но и скопировать в него начинку старого. Первая операция похожа на конструктор по умолчанию, вторая - на копирующий конструктор. Но, поскольку точный тип образца нам неизвестен, приходится проделывать это с помощью обычных виртуальных функций. Так что, когда говорят о виртуальных конструкторах, всегда имеют в виду задачу создания объектов по существующему образцу. Ведь у каждого образцового объекта есть какой-то вполне определенный тип, даже если мы и не знаем, какой именно.

Слайд 30





Подобного рода задачи возникают при необходимости продублировать большой набор объектов, хранящийся, например, в виде дерева. Одно из применений - в каком-нибудь графическом редакторе мы создавали чертеж из отрезков, фигур, строк и так далее. Все это - объекты разного типа, но они вполне могут быть наследниками одного базового класса, скажем, TElement, и все изображение хранится в виде связного списка указателей на этот базовый тип. Затем в какой-то момент мы хотим скопировать чертеж (например, для вывода на печать). Но про каждый из объектов мы знаем только то, что он является наследником TElement. 
Подобного рода задачи возникают при необходимости продублировать большой набор объектов, хранящийся, например, в виде дерева. Одно из применений - в каком-нибудь графическом редакторе мы создавали чертеж из отрезков, фигур, строк и так далее. Все это - объекты разного типа, но они вполне могут быть наследниками одного базового класса, скажем, TElement, и все изображение хранится в виде связного списка указателей на этот базовый тип. Затем в какой-то момент мы хотим скопировать чертеж (например, для вывода на печать). Но про каждый из объектов мы знаем только то, что он является наследником TElement. 
Таким образом, у нас возникает необходимость скопировать весь список с сохранением типов объектов, но самих типов мы не знаем. 
Функции, которые помогают решить эту задачу, и называют виртуальными конструкторами. 
Различают два вида виртуальных конструкторов - по умолчанию и копирующий. Означают эти термины то же, что и в случае обычных конструкторов. Конструктор по умолчанию создает "пустой" объект (такого же, как и у образца, типа). Копирующий конструктор еще и копирует во вновь созданный объект содержимое образца. 
Делается это следующим образом: - в базовом классе определяются две виртуальные (в примере ниже это makeobject и copyobject), которые создают объект (copyobject еще и копирует в новый объект содержимое образца) и возвращают указатель на него:
Описание слайда:
Подобного рода задачи возникают при необходимости продублировать большой набор объектов, хранящийся, например, в виде дерева. Одно из применений - в каком-нибудь графическом редакторе мы создавали чертеж из отрезков, фигур, строк и так далее. Все это - объекты разного типа, но они вполне могут быть наследниками одного базового класса, скажем, TElement, и все изображение хранится в виде связного списка указателей на этот базовый тип. Затем в какой-то момент мы хотим скопировать чертеж (например, для вывода на печать). Но про каждый из объектов мы знаем только то, что он является наследником TElement. Подобного рода задачи возникают при необходимости продублировать большой набор объектов, хранящийся, например, в виде дерева. Одно из применений - в каком-нибудь графическом редакторе мы создавали чертеж из отрезков, фигур, строк и так далее. Все это - объекты разного типа, но они вполне могут быть наследниками одного базового класса, скажем, TElement, и все изображение хранится в виде связного списка указателей на этот базовый тип. Затем в какой-то момент мы хотим скопировать чертеж (например, для вывода на печать). Но про каждый из объектов мы знаем только то, что он является наследником TElement. Таким образом, у нас возникает необходимость скопировать весь список с сохранением типов объектов, но самих типов мы не знаем. Функции, которые помогают решить эту задачу, и называют виртуальными конструкторами. Различают два вида виртуальных конструкторов - по умолчанию и копирующий. Означают эти термины то же, что и в случае обычных конструкторов. Конструктор по умолчанию создает "пустой" объект (такого же, как и у образца, типа). Копирующий конструктор еще и копирует во вновь созданный объект содержимое образца. Делается это следующим образом: - в базовом классе определяются две виртуальные (в примере ниже это makeobject и copyobject), которые создают объект (copyobject еще и копирует в новый объект содержимое образца) и возвращают указатель на него:

Слайд 31


Наследование. Классы в С++, слайд №31
Описание слайда:

Слайд 32


Наследование. Классы в С++, слайд №32
Описание слайда:

Слайд 33





Проверить, как это работает, поможет небольшая программа
Проверить, как это работает, поможет небольшая программа
main() {

  A a(1);
  B b("Hello");

  A* psrc[2] = {&a, &b};
  A* pmake[2];
  A* pcopy[2];

  for (int i=0; i<2; i++) {
    pmake[i] = psrc[i]->makeobject();
    pcopy[i] = psrc[i]->copyobject();

    psrc[i] ->show();
    pmake[i]->show();
    pcopy[i]->show();
  }

  return 0;
}
Object of type A, val=1
Object of type A, val=0
Object of type A, val=1
Object of type B, s=Hello
Object of type B, s=
Object of type B, s=Hello
Как видно, благодаря полиморфизму, вызвав функции makeobject или copyobject через указатель на базовый класс, даже не зная типа объекта-образца, можно создать объекты точно такого же типа.
Описание слайда:
Проверить, как это работает, поможет небольшая программа Проверить, как это работает, поможет небольшая программа main() {   A a(1);   B b("Hello");   A* psrc[2] = {&a, &b};   A* pmake[2];   A* pcopy[2];   for (int i=0; i<2; i++) {     pmake[i] = psrc[i]->makeobject();     pcopy[i] = psrc[i]->copyobject();     psrc[i] ->show();     pmake[i]->show();     pcopy[i]->show();   }   return 0; } Object of type A, val=1 Object of type A, val=0 Object of type A, val=1 Object of type B, s=Hello Object of type B, s= Object of type B, s=Hello Как видно, благодаря полиморфизму, вызвав функции makeobject или copyobject через указатель на базовый класс, даже не зная типа объекта-образца, можно создать объекты точно такого же типа.

Слайд 34





dynamic_cast и RTTI
Описание слайда:
dynamic_cast и RTTI

Слайд 35


Наследование. Классы в С++, слайд №35
Описание слайда:

Слайд 36


Наследование. Классы в С++, слайд №36
Описание слайда:

Слайд 37


Наследование. Классы в С++, слайд №37
Описание слайда:

Слайд 38


Наследование. Классы в С++, слайд №38
Описание слайда:

Слайд 39


Наследование. Классы в С++, слайд №39
Описание слайда:

Слайд 40


Наследование. Классы в С++, слайд №40
Описание слайда:



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