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

polevoi_cpp_2013_spring_lecture_03

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

Структура (struct)

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

определяет набор (почти) произвольных типов

именованный доступ

16.03.2013

11

Пример структур

пример:

struct Complex

{

double m_re; double m_im;

};

Complex a = {0};

16.03.2013

12

Структура (инициализация)

инициализация списком элементов (аналогично массивам)

пример:

Complex a; //!не инициализирована

Complex b = {0.0};

Complex c = {0.0, 1.0};

16.03.2013

13

Доступ к членам структур

. – оператор доступа к члену

-> – оператор разыменования члена структуры (для указателя на структуру)

Complex a = {0.0, 1.0};

Complex* pA(&a);

a.m_re = 45.0; pA->m_im = -18.8; (*pA).m_re = 41.6;

16.03.2013

14

Перечисление (enum)

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

может иметь собственное имя

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

приводится к целому в выражениях

16.03.2013

15

Примеры перечислений

enum KeyWord

enum Status

{

{

ASM,

OFF,

AUTO,

ON,

BREAK

DISABLE = 255

};

};

KeyWord word(ASM);

 

16.03.2013

16

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

объявление нового псевдонима типа

короткий синоним

единое имя выделенного типа

пример:

typedef int Int32;

Int32 counter(0);

16.03.2013

17

Константность

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

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

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

оптимизация

16.03.2013

18

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

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

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

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

#define MAX_PATH 256

или

const int MAX_PATH(256);

16.03.2013

19

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

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

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

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

16.03.2013

20