Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лекции программирование / polevoy_cpp_2012_spring_lecture_09

.pdf
Скачиваний:
33
Добавлен:
20.04.2015
Размер:
126 Кб
Скачать
☆

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

•реализуется через механизмы виртуальных функции и наследования

•имя функции сопоставляется с кодом функции на этапе выполнения

07.04.2012

cppNewb.ru

31

Полиморфизм

•помогает создавать расширяемые программы

•увеличивает возможности повторного использования кода и упрощает сопровождение

•механизм реализации и использования абстракций

07.04.2012

cppNewb.ru

32

Интерфейсный класс

•содержит только объявления функций

•не содержит данных

•не содержит определений объявленных функций

•все функции д.б. чисто виртуальными

07.04.2012

cppNewb.ru

33

Наследование интерфейса в С++

•реализуется через наследование от интерфейсного (абстрактного) класса

•наиболее разумный случай

использования множественного наследования

07.04.2012

cppNewb.ru

34

Ассоциативность операторов

•правоассоциативные

–присваивания

–унарные операторы

•левоассоциативные

пример:

a = b = c означает a = (b = c)

a + b + c означает (a + b) + c

07.04.2012

cppNewb.ru

35

Порядок вычислений

•порядок вычислений подвыражений не определен

пример:

c = f(a) + g(b); //< порядок произвольный

int i(1);

v[i] = i++; //< v[1] = 1 или v[1] = 2 или …

07.04.2012

cppNewb.ru

36

Не могут быть переопределены

•?:

–тернарный условный оператор

•sizeof

–оператор вычисления размера типа

•typeid

–оператор получения информации о типе

07.04.2012

cppNewb.ru

37

Не могут быть переопределены операторы доступа

•::

–оператор разрешения области видимости

•.

–оператор выбора члена

•.*

–оператор выбора члена через указатель на член

07.04.2012

cppNewb.ru

38

Причины ограничения перегрузки

•правым операндом является не значение, а имя

•основные средства доступа к членам

07.04.2012

cppNewb.ru

39

Рекомендуемые типы

•bool

•char

•int

•double

07.04.2012

cppNewb.ru

40