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

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

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

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

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

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

e-mail: oop.misis@gmail.com

Подстановка значений

•“ волшебные числа”

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

•подстановка значений (без выделения

памяти)

#define MAX_PATH 256

или

const int MAX_PATH(256);

25.02.2012

cppNewb.ru

2

Константность (const)

•замена препроцессора

•строгий контроль типов

•защита данных

•оптимизация

25.02.2012

cppNewb.ru

3

Константность и защита данных

•инициализация в процессе выполнения

•изменение не предусмотрено

•компилятор пресекает попытки

потенциального изменения (проверка присваиваний)

25.02.2012

cppNewb.ru

4

Указатель (pointer)

•тип Т* - тип “указатель на Т”

•переменная типа Т* содержит адрес объекта типа Т

•разыменование (косвенное обращение)

пример:

char с1 = ‘а’;

char* p = &с1; //< адрес переменной с1 char с2 = *p; //< с2 == ‘а’

25.02.2012

cppNewb.ru

5

Ноль

•ноль (0) имеет тип int

•константа

–арифметический тип

–указатель

•NULL

–использовать запрещено

–макрос

25.02.2012

cppNewb.ru

6

Нулевой указатель

•гарантируется отсутствие объектов с адресом 0

•0 – указатель, который ни на что не ссылается

•разыменование нулевого указателя – ошибка времени исполнения

25.02.2012

cppNewb.ru

7

Массив (встроенный)

•составной пользовательский тип

•тип T[size] – тип “массив из size элементов типа Т”

•элементы индексируются от 0 до size-1

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

пример:

int divisors[12]; //! не инициализирован

25.02.2012

cppNewb.ru

8

Инициализация встроенного массива

•списком инициализаторов

•размер массива м.б. вычислен по списку инициализации

•не указанные в списке значения инициализируются по умолчанию

•используйте T arr[SIZE] = {0};

пример:

int ar1[] = {l, 2, 3, 4};

int ar2[32] = {l, 2};

int ar3[MAX_NUMS] = {0};

25.02.2012

cppNewb.ru

9

Указатели и массивы

•имя массива – указатель на первый элемент

•доступ через указатели или оператор []

пример:

p = &v[0]; //< или p = v;

v[i] == *(p + i)

25.02.2012

cppNewb.ru

10