Программирование >>  Инициализация объектов класса, структура 

1 ... 58 59 60 [ 61 ] 62 63 64 ... 395


iStack::push( 50

17 )( bot: 2 4 6 12 14 16 22 24 26 32 34 36 42 44 46 48 50 :top ) iStack::pop(): 50 iStack::pop(): 48

( 15 )( bot: 2 4 6 12 14 16 22 24 26 32 34 36 42 44 46 :top )

Упражнение 4.23

Иногда требуется операция peek() , которая возвращает значение элемента на вершине стека без извлечения самого элемента. Реализуйте функцию peek() и добавьте к программе main() проверку работоспособности этой функции.

Упражнение 4.24

В чем вы видите два основн1х недостатка реализации класса iStack? Как их можно исправить?



5. Инструкции

Mельчайшей независимой частью С++ программа: является инструкция. Она соответствует предложению естественного языка, но завершается точкой с запятой (;), а не точкой. Выражение С++ (например, ival + 5) становится простой инструкцией, если после него поставить точку с запятой. Составная инструкция -это последовательность простых, заключенная в фигурные скобки. По умолчанию инструкции выполняются в порядке записи. Как правило, последовательного выполнения недостаточно для решения реальных задач. Специальные управляющие конструкции позволяют менять порядок действий в зависимости от некоторых условий и повторять составную инструкцию определенное количество раз. Инструкции if, if-else и switch обеспечивают условное в1нолнение. Повторение обеспечивается инструкциями цикла while, do-while и for.

5.1. Простые и составные инструкции

Простейшей формой является пустая инструкция. Вот как она выглядит:

; пустая инструкция

Пустая инструкция используется там, где синтаксис С++ требует употребления инструкции, а логика программа: - нет. Например, в следующем цикле while, копирующем одну строку в другую, все необходимые действия производятся внутри круглых скобок (условной части инструкции). Однако согласно правилам синтаксиса С++ после while должна идти инструкция. Поскольку нам нечего поместить сюда (вся работа

while ( *string++ = inBuf++ )

уже выполнена), приходится оставить это место пустым:

; пустая инструкция

Случайное появление лишней пустой инструкции не вызывает ошибки компиляции. Например, такая строка

ival = dval + sval;; правильно: лишняя пустая инструкция

состоит из двух инструкций - сложения двух величин с присваиванием результата переменной ival и пустой.

Простая инструкция состоит из выражения, за которым следует точка с запятой.

простые инструкции

int ival = 1024; инструкция определения переменной

ival; выражение

ival + 5; еще одно выражение

Например:



if ( ival0 > ival1 ) {

составная инструкция, состоящая из объявления и двух присваиваний

int temp = ivalO; ivalO = ival1; ival1 = temp;

заключенная в фигурные скобки:

Составная инструкция может употребляться там же, где простая, и не нуждается в завершающей точке с запятой.

Пустая составная инструкция эквивалентна пустой простой. Приведенный выше пример

while ( *string++ = *inBuf++ )

с пустой инструкцией можно переписать так:

{} пустая инструкция

Составную инструкцию, содержащую определения переменных, часто называют блоком. Блок задает локальную область видимости в программе - идентификаторы, объявленные внутри блока (как temp в пред1дущем примере), видны только в нем. (Блоки, области видимости и время жизни объектов рассматриваются в главе 8.)

5.2. Инструкции объявления

В С++ определение объекта, например

int ival;

рассматривается как инструкция объявления (хотя в данном случае более правильно было бы сказать определения). Ее можно использовать в любом месте программы, где разрешено употреблять инструкции. В следующем примере объявления помечены комментарием #n, где n - порядковый номер.

ival = ival +5; присваивание

Условные инструкции и инструкции цикла синтаксически требуют употребления единственной инструкции, связанной с ними. Однако, как правило, этого недостаточно. В таких случаях употребляются составные инструкции - последовательность прост1х,



1 ... 58 59 60 [ 61 ] 62 63 64 ... 395

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика