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

polevoy_cpp_2012_spring_lecture_09

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

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

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

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

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