kopilkaurokov.ru - сайт для учителей

Создайте Ваш сайт учителя Курсы ПК и ППК Видеоуроки Олимпиады Вебинары для учителей

Деструктор. полиморфизм. параметрический полиморфизм

Нажмите, чтобы узнать подробности

Объектное и объектно-ориентированное программирование (ООП) возникло в результате развития идеологии процедурного программирования, где данные и подпрограммы (процедуры, функции) их обработки формально не связаны. Кроме того, в современном объектно-ориентированном программировании часто большое значение имеют понятия события (так называемое событийно-ориентированное программирование) и компонента (компонентное программирование).

Вы уже знаете о суперспособностях современного учителя?
Тратить минимум сил на подготовку и проведение уроков.
Быстро и объективно проверять знания учащихся.
Сделать изучение нового материала максимально понятным.
Избавить себя от подбора заданий и их проверки после уроков.
Наладить дисциплину на своих уроках.
Получить возможность работать творчески.

Просмотр содержимого документа
«Деструктор. полиморфизм. параметрический полиморфизм»

ДЕСТРУКТОР. ПОЛИМОРФИЗМ. ПАРАМЕТРИЧЕСКИЙ ПОЛИМОРФИЗМ Выполнил: сдуент группы МДИ-117 Рыбаков В.В.

ДЕСТРУКТОР. ПОЛИМОРФИЗМ. ПАРАМЕТРИЧЕСКИЙ ПОЛИМОРФИЗМ

Выполнил: сдуент группы МДИ-117 Рыбаков В.В.

Деструкторы

Деструкторы

  • Деструктор – антипод конструктора, который вызывается автоматически при разрушении объекта
  • Имя деструктора совпадает с именем конструктора, но перед ним ставится знак  (тильда)
Объявление деструктора Деструкторы по умолчанию являются открытыми При объявлении деструкторов действуют несколько правил:

Объявление деструктора

Деструкторы по умолчанию являются открытыми

При объявлении деструкторов действуют несколько правил:

  • Не могут иметь аргументов
  • Не могут иметь возвращаемого типа (включая  void )
  • Не могут возвращать значение с помощью оператора  return
  • Не могут объявляться как  constvolatile  или  static . Однако их можно вызывать для уничтожения объектов, объявленных как  const , volatile  или  static
Использование деструкторов Деструкторы вызываются, когда происходит одно из следующих событий: Объект, предоставленный с использованием оператора  new , можно явно освободить с использованием оператора  delete Локальный (автоматический) объект с областью видимости

Использование деструкторов

Деструкторы вызываются, когда происходит одно из следующих событий:

  • Объект, предоставленный с использованием оператора  new , можно явно освободить с использованием оператора  delete
  • Локальный (автоматический) объект с областью видимости "блок" выходит за пределы области видимости
  • Время существования временного объекта заканчивается
  • Программа заканчивается, глобальные или статические объекты продолжают существовать
  • Деструктор можно явно вызывать

имя объекта. ~ имя деструктора ()

Ограничения на использование деструкторов:

  • Невозможно взять адрес деструктора
  • Производные классы не наследуют деструкторы базового класса
#include a; ~Int(){ cout Int Ob1, Ob2(a), Ob3; // инициализация первым конструктором Ob1.show(); void setX(int a); void show(); Ob2.show(); int summa(Int obj1, Int obj2) { Ob3.show(); return obj1.x+obj2.x;} }; Ob3.setX(Ob3.summa(Ob1,Ob2)); Ob3.show(); Ob3.~Int(); void Int::show(){cout void Int::setX(int a){x=a;} system("pause"); }" width="640"

#include "iostream"

#include "stdlib.h"

void main()

using namespace std;

class Int {

{

int a;

int x;

cout

public:

Int(int y=0){x=y;}

cin a;

~Int(){

cout

Int Ob1, Ob2(a), Ob3; // инициализация первым конструктором

Ob1.show();

void setX(int a);

void show();

Ob2.show();

int summa(Int obj1, Int obj2) {

Ob3.show();

return obj1.x+obj2.x;}

};

Ob3.setX(Ob3.summa(Ob1,Ob2));

Ob3.show();

Ob3.~Int();

void Int::show(){cout

void Int::setX(int a){x=a;}

system("pause");

}

Полиморфизм Виртуальные методы - это один из важнейших приёмов реализации полиморфизма . Они позволяют создавать общий код, который может работать как с объектами базового класса, так и с объектами любого его класса-наследника. При этом базовый класс определяет наличие способа работы с объектами, а любые его наследники могут предоставлять конкретную реализацию этого способа.

Полиморфизм

Виртуальные методы - это один из важнейших приёмов реализации полиморфизма . Они позволяют создавать общий код, который может работать как с объектами базового класса, так и с объектами любого его класса-наследника. При этом базовый класс определяет наличие способа работы с объектами, а любые его наследники могут предоставлять конкретную реализацию этого способа.

Важнейшая концепция ООП Полиморфизм – важнейшая концепция в ООП. Большинство лучших практик и решений основаны на полиморфизме и глубокое понимание принципов и тонкостей работы данного механизма является обязательным для построения гибкой и надёжной архитектуры ПО!

Важнейшая концепция ООП

Полиморфизм – важнейшая концепция в ООП. Большинство лучших практик и решений основаны на полиморфизме и глубокое понимание принципов и тонкостей работы данного механизма является обязательным для построения гибкой и надёжной архитектуры ПО!

Определение Полиморфизм – это принцип, согласно которому есть возможность использовать одну и ту же запись для работы с объектами различных типов данных. Кратко: « один интерфейс, множество реализаций ». Полиморфизм позволяет единообразно работать с объектами различных типов, подменяя только сами объекты, но не код по их обработке.

Определение

Полиморфизм – это принцип, согласно которому есть возможность использовать одну и ту же запись для работы с объектами различных типов данных. Кратко: « один интерфейс, множество реализаций ». Полиморфизм позволяет единообразно работать с объектами различных типов, подменяя только сами объекты, но не код по их обработке.

Drive();" width="640"

Полиморфная строка кода

for ( int i = 0; i

traffic[i]-Drive();

Виды полиморфизма В узком смысле полиморфизм разделяют на статический и динамический . Однако, в большинстве ситуаций под полиморфизмом понимают именно динамический полиморфизм. Статический полиморфизм – это механизм, при котором одна и та же инструкция может быть использована для работы с объектами разных типов, но конкретный тип и инструкции по работе с ним уже известны на этапе компиляции!

Виды полиморфизма

В узком смысле полиморфизм разделяют на статический и динамический . Однако, в большинстве ситуаций под полиморфизмом понимают именно динамический полиморфизм.

Статический полиморфизм – это механизм, при котором одна и та же инструкция может быть использована для работы с объектами разных типов, но конкретный тип и инструкции по работе с ним уже известны на этапе компиляции!

Статический полиморфизм

Статический полиморфизм

  • Ad-hoc полиморфизм . Реализуется через механизм перегрузки методов – эта тема вам уже хорошо знакома.
  • Параметрический полиморфизм . Реализуется через механизм обобщений (g e nerics, дж е нериков) – с этим будем разбираться после темы «интерфейсы».
Динамический полиморфизм Динамический полиморфизм – это механизм, при котором одна и та же инструкция может быть использована для работы с объектами разных типов, но конкретный тип и инструкции по работе с ним НЕ известны на этапе компиляции, а определяются на этапе выполнения (реализуется т.н. полиморфное поведение).

Динамический полиморфизм

Динамический полиморфизм – это механизм, при котором одна и та же инструкция может быть использована для работы с объектами разных типов, но конкретный тип и инструкции по работе с ним НЕ известны на этапе компиляции, а определяются на этапе выполнения (реализуется т.н. полиморфное поведение).


Получите в подарок сайт учителя

Предмет: Информатика

Категория: Презентации

Целевая аудитория: Прочее.
Урок соответствует ФГОС

Скачать
Деструктор. полиморфизм. параметрический полиморфизм

Автор: Рыбаков Вячеслав Владимирович

Дата: 31.12.2021

Номер свидетельства: 596655

Похожие файлы

object(ArrayObject)#851 (1) {
  ["storage":"ArrayObject":private] => array(6) {
    ["title"] => string(99) "Деструктор. полиморфизм. параметрический полиморфизм"
    ["seo_title"] => string(53) "destruktor_polimorfizm_parametricheskii_polimorfizm_3"
    ["file_id"] => string(6) "597259"
    ["category_seo"] => string(11) "informatika"
    ["subcategory_seo"] => string(5) "uroki"
    ["date"] => string(10) "1641839215"
  }
}
object(ArrayObject)#873 (1) {
  ["storage":"ArrayObject":private] => array(6) {
    ["title"] => string(99) "Деструктор. полиморфизм. параметрический полиморфизм"
    ["seo_title"] => string(53) "destruktor_polimorfizm_parametricheskii_polimorfizm_2"
    ["file_id"] => string(6) "597258"
    ["category_seo"] => string(11) "informatika"
    ["subcategory_seo"] => string(11) "presentacii"
    ["date"] => string(10) "1641839146"
  }
}
object(ArrayObject)#851 (1) {
  ["storage":"ArrayObject":private] => array(6) {
    ["title"] => string(99) "Деструктор. полиморфизм. параметрический полиморфизм"
    ["seo_title"] => string(51) "destruktor_polimorfizm_parametricheskii_polimorfizm"
    ["file_id"] => string(6) "596654"
    ["category_seo"] => string(11) "informatika"
    ["subcategory_seo"] => string(7) "prochee"
    ["date"] => string(10) "1640908406"
  }
}


Получите в подарок сайт учителя

Видеоуроки для учителей

Курсы для учителей

ПОЛУЧИТЕ СВИДЕТЕЛЬСТВО МГНОВЕННО

Добавить свою работу

* Свидетельство о публикации выдается БЕСПЛАТНО, СРАЗУ же после добавления Вами Вашей работы на сайт

Удобный поиск материалов для учителей

Ваш личный кабинет
Проверка свидетельства