🗊 Презентация Инкапсуляция в классах С++

Категория: Образование
Нажмите для полного просмотра!
Инкапсуляция в классах С++, слайд №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

Содержание

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

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


Слайд 1


Тема: Инкапсуляция в классах С++ Достоинства инкапсуляции при программировании классов Правила умолчания в С++ и проблемы инкапсуляции Конструкторы и...
Описание слайда:
Тема: Инкапсуляция в классах С++ Достоинства инкапсуляции при программировании классов Правила умолчания в С++ и проблемы инкапсуляции Конструкторы и деструкторы Инициализация и присваивание Свойства – данные типа класса

Слайд 2


Инкапсуляция при программировании классов Инкапсуляция данных при программировании классов – доступ к свойствам через методы Достоинства инкапсуляции...
Описание слайда:
Инкапсуляция при программировании классов Инкапсуляция данных при программировании классов – доступ к свойствам через методы Достоинства инкапсуляции позволяет вводить инвариант представления для типа данных (упрощение разработки) уменьшает зависимость кода пользователей класса от реализации методов и облегчает корректировку кода методов (сопровождение) Требуются языковые средства, обеспечивающие полный контроль доступа

Слайд 3


Правила умолчания в С++ Присваивание объектов одного и того же типа (побитовое копирование памяти) Создание объекта (отведение под структуру данных...
Описание слайда:
Правила умолчания в С++ Присваивание объектов одного и того же типа (побитовое копирование памяти) Создание объекта (отведение под структуру данных неинициализированной памяти) Разрушение объекта (освобождение памяти, распределенной под структуру данных) Инициализация объекта объектом того же типа (побитовое копирование памяти) Вывод. Эти предопределенные в С++ операции препятствуют принципу инкапсуляции свойств

Слайд 4


Проблема инварианта представления Инвариант представления для строки типа String – наличие терминального байта – не выполнен после создания объекта...
Описание слайда:
Проблема инварианта представления Инвариант представления для строки типа String – наличие терминального байта – не выполнен после создания объекта Пример #include “mystring.h” #include void fill_array( char* ); void main( int, char** ) { String s, t ; char very_big_text[1000] ; fill_array(very_big_text); for( int i = 0 ; i < s.length() ; i++ ) s[i] = very_big_text[i] ; t = s ; }

Слайд 5


Проблемы инкапсуляции Для классов с динамическим управлением памятью предопределенные в С++ операции будут вызывать проблемы Пример
Описание слайда:
Проблемы инкапсуляции Для классов с динамическим управлением памятью предопределенные в С++ операции будут вызывать проблемы Пример

Слайд 6


Проблема снимается перегрузкой операции присваивания для аргумента типа класса typename& operator=( const typename& ) конструкторами класса (создание...
Описание слайда:
Проблема снимается перегрузкой операции присваивания для аргумента типа класса typename& operator=( const typename& ) конструкторами класса (создание и инициализация объектов, передача аргументов и возврат значений) деструктором класса (разрушение объекта)

Слайд 7


Инкапсуляция в классах С++, слайд №7
Описание слайда:

Слайд 8


Определение присваивания
Описание слайда:
Определение присваивания

Слайд 9


Конструктор по умолчанию и пустой деструктор
Описание слайда:
Конструктор по умолчанию и пустой деструктор

Слайд 10


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

Слайд 11


Деструктор Деструктор – особая функция-член класса имя образуется из тильды “~” и имени класса не возвращает значения не имеет аргументов неявно...
Описание слайда:
Деструктор Деструктор – особая функция-член класса имя образуется из тильды “~” и имени класса не возвращает значения не имеет аргументов неявно вызывается при разрушении объекта вызов происходит непосредственно перед освобождением памяти под структуру  для ряда объектов (глобальные, статические) деструктор вызывается после того, как управление получит функция main Основное назначение деструктора – это обеспечить корректное удаление объекта при завершении его времени жизни

Слайд 12


Вызов конструкторов и деструкторов
Описание слайда:
Вызов конструкторов и деструкторов

Слайд 13


Инициализация Отличие инициализации и присваивания Пример int i = 7; // инициализация int k; k = 75000; // присваивание i = 0; // присваивание Два...
Описание слайда:
Инициализация Отличие инициализации и присваивания Пример int i = 7; // инициализация int k; k = 75000; // присваивание i = 0; // присваивание Два синтаксических способа инициализации Пример # include “complex.h” complex c = 7.4; // инициализация 7.4+0i complex d (8.5); // инициализация 8.5+0i complex e (9.1,10.0); // инициализация 9.1+10.0i complex f ;

Слайд 14


Конструкторы и инициализация Инициализацию обеспечивает конструктор Пример Класс complex должен иметь такие конструкторы: complex ( double ); // для...
Описание слайда:
Конструкторы и инициализация Инициализацию обеспечивает конструктор Пример Класс complex должен иметь такие конструкторы: complex ( double ); // для инициализации 1 и 2 complex (double, double ); // для инициализации 3 complex ( ) ; // для описания без инициализации или один конструктор вида complex (double=0, double=0 ); // для всех описаний Поместив соответствующий конструктор в закрытую часть класса можно запретить конкретный синтаксис описания

Слайд 15


Пример для класса String
Описание слайда:
Пример для класса String

Слайд 16


Особенности конструкторов и деструкторов Класс может не иметь конструктора. В этом случае создание объекта состоит в выделении памяти под структуру...
Описание слайда:
Особенности конструкторов и деструкторов Класс может не иметь конструктора. В этом случае создание объекта состоит в выделении памяти под структуру Класс может не иметь деструктора. В этом случае разрушение объекта состоит в освобождении памяти, выделенной под структуру Класс может иметь несколько конструкторов. Если есть хотя бы один, то создание объекта требует конструктора Класс может иметь только один деструктор.

Слайд 17


Особенности конструкторов и деструкторов Конструктор без аргументов называется конструктором по умолчанию Конструктор с аргументом типа класса...
Описание слайда:
Особенности конструкторов и деструкторов Конструктор без аргументов называется конструктором по умолчанию Конструктор с аргументом типа класса называется копирующим конструктором Конструктор с одним аргументом обеспечивает преобразование типа Конструктор может вызываться явно Конструктор, имеющий квалификатор explicit может быть вызван только явно

Слайд 18


Расширение класса String
Описание слайда:
Расширение класса String

Слайд 19


Дополнительные конструкторы
Описание слайда:
Дополнительные конструкторы

Слайд 20


Свойства – данные типа класса Класс может иметь члены-данные типа класса.
Описание слайда:
Свойства – данные типа класса Класс может иметь члены-данные типа класса.

Слайд 21


Создание объекта типа Employee Создание объекта типа Employee включает в себя создание свойства name типа String Класс String имеет конструктор,...
Описание слайда:
Создание объекта типа Employee Создание объекта типа Employee включает в себя создание свойства name типа String Класс String имеет конструктор, который должен вызываться при создании объектов типа String Следовательно, объект типа Employee создается в такой последовательности: выделение памяти под структуру в порядке описания полей после выделения памяти свойству (например, name) вызывается конструктор, если он есть (String::String() для name) вызывается конструктор класса-владельца, если он есть

Слайд 22


Присваивание объекта типа Employee Если у класса нет операции присваивания, то присваивание объектов типа Employee происходит по правилам умолчания,...
Описание слайда:
Присваивание объекта типа Employee Если у класса нет операции присваивания, то присваивание объектов типа Employee происходит по правилам умолчания, т.е. копируется содержимое памяти НО! Если свойства – данные типа класса, имеющего операцию присваивания, то для них будет использоваться эта операция присваивания (String::operator=(const String&) для name)

Слайд 23


Инициализация объекта типа Employee Если у класса нет копирующего конструктора, то инициализация объектов типа Employee происходит по правилам...
Описание слайда:
Инициализация объекта типа Employee Если у класса нет копирующего конструктора, то инициализация объектов типа Employee происходит по правилам умолчания, т.е. копируется содержимое памяти НО! Если свойства – данные типа класса, имеющего копирующий конструктор, то он будет использован для инициализации этих свойств (String::String(const String&) для name)

Слайд 24


Разрушение объекта типа Employee Разрушение объекта типа Employee включает в себя разрушение свойства name типа String Класс String имеет деструктор,...
Описание слайда:
Разрушение объекта типа Employee Разрушение объекта типа Employee включает в себя разрушение свойства name типа String Класс String имеет деструктор, который должен вызываться при разрушении объектов типа String Следовательно, объект типа Employee разрушается такой последовательности: вызывается деструктор класса-владельца (Employee), если он есть освобождается память, отведенная под структуру в порядке, обратном описанию полей до освобождением памяти для свойства (например, name) вызывается деструктор, если он есть (String::~String() для name)

Слайд 25


Пример использования
Описание слайда:
Пример использования

Слайд 26


Подмена встроенных операций Класс-владелец может иметь свои операцию присваивания конструктор по умолчанию копирующий конструктор конструктор с...
Описание слайда:
Подмена встроенных операций Класс-владелец может иметь свои операцию присваивания конструктор по умолчанию копирующий конструктор конструктор с параметрами деструктор

Слайд 27


Подмена встроенных операций
Описание слайда:
Подмена встроенных операций

Слайд 28


Определение операций
Описание слайда:
Определение операций

Слайд 29


Определите семантику вызовов
Описание слайда:
Определите семантику вызовов

Слайд 30


Ответ
Описание слайда:
Ответ

Слайд 31


РЕЗЮМЕ Язык С++ имеет все средства обеспечения при программировании класса полного контроля над свойствами объекта Для этого используются методы...
Описание слайда:
РЕЗЮМЕ Язык С++ имеет все средства обеспечения при программировании класса полного контроля над свойствами объекта Для этого используются методы класса функции-друзья класса А также средства корректировки разрешенных в языке С по умолчанию операций присваивания: String& String::operator=(const String&) сoздания: String:: String( ) инициализации: String:: String(const String&) уничтожения: String:: ~String( ) Эти средства корректно работают с членами-данными типа класса

Слайд 32


Упражнение Добавьте в конструкторы, операцию присваивания и деструктор класса String вызов функции printf, сообщающий, какой метод вызывается....
Описание слайда:
Упражнение Добавьте в конструкторы, операцию присваивания и деструктор класса String вызов функции printf, сообщающий, какой метод вызывается. Поэкспериментируйте с тестовыми программами, обращая внимание на вызов методов - когда, какие и в какой последовательности.



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