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

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

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

Объектно-ориентированное программирование

с использованием C++

Полевой Дмитрий Валерьевич к.т.н., доцент КиК

e-mail: oop.misis@gmail.com

Псевдоним типа (typedef)

typedef OldType NewType;

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

часто используется

для сокращения кода, в т.ч. за счет подстановки параметров шаблонов

для сокрытия деталей реализации

14.04.2012

cppNewb.ru

2

Псевдоним типа (примеры)

typedef unsigend int size_t;

typedef basic_string<char> string;

14.04.2012

cppNewb.ru

3

Вложенные типы

определяются внутри определения типа (класс, структура)

подчиняются спецификаторам доступа

доступ с помощью оператора разрешения области видимости

в т.ч. для typedef

14.04.2012

cppNewb.ru

4

Вложенные типы (пример)

class Container

{

public:

typedef long SizeType;

...

private:

class Node

{

...

14.04.2012

cppNewb.ru

5

Обобщенное программирование

Остерн М.Г.

Обобщенное программирование и STL. Использование и наращивание стандартной библиотеки шаблонов C++

Александреску А.

Современное проектирование на С++: Обобщенное программирование и прикладные шаблоны проектирования

STL

14.04.2012

cppNewb.ru

6

Типы указателей

обычный

сингулярный (нулевой)

нельзя разыменовывать

можно проверять на равенство

следующий за последним в массиве

нельзя разыменовывать

можно использовать в арифметике указателей и сравнениях

14.04.2012

cppNewb.ru

7

Диапазон (указателей)

[first, last) состоит из всех указателей (элементов) от first до last, не включая last

является допустимым

last достижим из first

можно разыменовывать все указатели

пустой диапазон [p, p) является допустимым

14.04.2012

cppNewb.ru

8

Диапазон (объектов)

[first, last) состоит из всех объектов

(элементов) от *first до *(last-1)

включительно

является допустимым

last достижим из first

можно получить адрес каждого объекта

пустой диапазон [p, p) является допустимым

14.04.2012

cppNewb.ru

9

Свойства диапазонов

если непустой диапазон [first, last) является допустимым, то [first+1, last) является допустимым

если [first, last) допустимый и указатель mid

достижим из first, last достижим из mid, то

[first, mid) и [mid, last) допустимые

если [first, mid) и [mid, last) допустимые, то [first, last) допустимые

14.04.2012

cppNewb.ru

10