лекции программирование / polevoy_cpp_2012_spring_lecture_10
.pdfОбъектно-ориентированное программирование
с использованием 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 |