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

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

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

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

с использованием 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