Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Преобразование






Происходит смещение.

Зависит от того какие элементы и в каком порядке они лежат.

Размер структуры должен бить кратен наибольшему члену!

Размер пустой структуры или класса 1 байт.

Сначала строится родительский класс.

Методы не влияют на размер.

Полиморфизм - возможность программных объектов с одинаковой спецификацией иметь разную реализацию.

Полиморфизм - один интерфейс может иметь множество реализаций.

New и delete - статические методы по умолчанию.

Перегрузка операторов

Один из основных аспектов,,,, позволяющий описать реакцию оператора на пользовательские типы.

Изменение смысла оператора при использованию его по отношению к пользовательским типом.

Способ реализации полиморфизма, допускающий одновременное существование в одной области видимости нескольких вариантов оператора с разными типами.

 

Виды реализации перегрузки:

1. Оператор – метод класса.

2. Оператор – глобальная функция.

3. Дружественная функция.

Существует 6 операторов которых нельзя перегрузить:

. – доступ к объекту

:: - разр. Область видимости

?: - тернарный

Sizeof() – получение размера

Typeid

.*

Требование к перегрузки:

 

Соблюдать семантику операторов.

С помощью перегрузки нельзя изменить приоритет оператора.

Нельзя изменить ассоциативность оператора.

Нельзя изменить «нарность» оператора.

Нельзя создать новою операцию.

Нельзя изменять способ воздействия на стандартные типы.

Родственный операции не дублируются.

Синтаксис оператора при перегрузки с помощью метода класса.

 

 

Преобразование

1.Встроенный = встроенный ]организуются автоматически

2.Пользоватеьский = встроенный ] конструктор или оператор

3. Встроенный = пользовательский ] перегрузка оператора класса

4.Пользовательский = пользовательский ]перегрузка оператора классa

 

Виды (способы) перегрузки

 

Метод класса Ун - 0, Бин – 1 Глобальная функция Ун - 1, Бин – 2, 1 слева, 2 справа Дружественная функция
Прямые обращение к любым позициям
не имеет прямого доступа
Бинарный тип класса –

Слева(вызывает)

 

Унарный тип класса

Единственный операнд(вызывает)

 

Для коммутативности   int + Date Date + int   Int* Date Date*int     Операторы, требующие коммутативности (попарно). *Каскадирование.
Чужой мы(наш класс) Закрытий оператор Класс дружит  
(), [ ], =, -> Можно только Чужой чужой Закрытий + закрытый Класс класс   Point + COORD Обычная функция Которая является другом класса имеет доступ к его полям Через объект friendпрототип функции;
Составные операторы присваивание нужно
+Прямой доступ к полям абсолютная инкапсуляция -невозможность организации коммутативности + добавление перегрузки операторов к чужим скомпилированным типам -нет прямого доступа к полям +наш объект не всегда слева прямой доступ к полям через объект -вторжение в класс, дружбу навязать нельзя    

Каскадирование – использования одного оператора внутри другого.

 

Дружба

1. Друг имеет доступ к закрытым полям.

2. Дружбу нельзя навязать.

Виды:

1.Простая функция – одновременно с любым количеством классов.

2.Метод любого класса может одновременно дружить с любым количеством других классов.

3.Один класс может дружить с любым количеством других классов.

 

д/з 7 файлов

 

Перегрузка =

Проверки:

1. Самоприсваивание

2. Стоит ли удалять старую память:

а)её нет

б)равное количество элементов

3.Проверка донора

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.