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

polevoi_cpp_2013_spring_lecture_02

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

Объявление в for-инструкции

•переменную можно объявить в части инициализации for-инструкции

•область видимости простирается до конца for-инструкции

пример:

for (int i(0); i < n; ++i)

16.02.2013

21

Пример (for-инструкция)

for (int i(0); i < n; ++i)

{

// основная работа

}

for (int i(n - 1); i >= 0; i -= 2)

{

// основная работа

}

16.02.2013

22

Пример (while-инструкция)

bool isReady(false); while (!isReady)

{

// основная работа

}

16.02.2013

23

“Бесконечные” циклы

•“ в природе” не встречаются

•явно вводите и проверяйте управляющую выполнением цикла переменную

16.02.2013

24

Логическая стройность

•избегайте длинных блоков

•избегайте глубокой вложенности

•упрощайте сложные выражения и конструкции

•сначала делайте основную работу

16.02.2013

25

Правило одной точки выхода

•у функции д.б. одна точка выхода

•может нарушаться при обработке входных параметров

16.02.2013

26

Комментарии

•актуальные

•понятные

•достаточные

•не должны дублировать конструкции языка

•отражают намерение и существенные детали

16.02.2013

27

l-value

•именующее выражение, ссылается на объект (м.б. const)

•может стоять в левой части оператора присваивания (если не const)

пример:

int num(1); num = 5;

*(p + 15)

16.02.2013

28

r-value

• не l-value

пример:

5

//< литерал

a + b //< временные объекты

new int

//< новый объект

string(“0”) //< временный объект

s.size()

//< вызов функции

16.02.2013

29

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

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

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

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

пример:

char с1 = ‘а’;

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

char с2 = *p; //< с2 == ‘а’

16.02.2013

30