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

polevoi_cpp_2013_spring_lecture_03

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

Структура (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