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

polevoi_cpp_2013_spring_lecture_03

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

Указатель на константу и константный указатель

• указатель на константную переменную

const T* p = 0;

• константный указатель

/// д.б. инициализирован

T* const pC = &obj;

• константный указатель на константную переменную

/// д.б. инициализирован

const T* const pC = &obj;

16.03.2013

21

Передача и возвращение адресов (указатели и ссылки)

позволяет избежать накладных расходов на копирование

требует дополнительного контроля доступа и изменений

16.03.2013

22

Объект, указатель или ссылка?

если тип не фундаментальный, используйте ссылку или указатель (избегайте лишних копирований)

предпочитайте ссылки

если объекта может не существовать, используйте указатель

помните о константности

16.03.2013

23

Константность символьных массивов

литералы – всегда const

попытка изменения литерала может и пройти, но результат не определен

нужна возможность изменения – используйте массив, а не литерал

16.03.2013

24

АТД

абстрактный тип данных

создание/уничтожение

набор операций

структура данных – реализация АТД

16.03.2013

25

Интерфейс

семантическая и синтаксическая конструкция

спецификация услуг

16.03.2013

26

АТД “число”

создание

уничтожение

присвоение

арифметические операции

сложение, вычитание

умножение, деление

ввод и вывод

16.03.2013

27

АТД “динамический массив”

создание

уничтожение

получение доступа к элементу по индексу

получение размера

изменение размера

16.03.2013

28

Динамический массив (интерфейс)

Array – структура описатель (дескриптор)

void create(Array& arr, const size_t size)

void destroy(Array& arr)

T& at(Array& arr, const size_t index)

size_t size(const Array& arr)

void setSize(Array& arr,

const size_t newSize)

16.03.2013

29

Динамический массив (дополнительные сервисы)

void insert(SArray& arr, size_t pos, T val)

void delete(SArray& arr, size_t pos)

void sort(SArray& arr)

void setPattern(SArray& arr, T pattern)

16.03.2013

30