Кент Рейсдорф. BORLAND C++BUILDER. Раздел 1

Кент Рейсдорф. BORLAND C++BUILDER. Страница 51

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

Сначала с помощью функции getch() с клавиатуры вводится символ. Как вы помните, я использую getch() в конце программ, чтобы предотвратить их преждевременное завершение, и при этом игнорирую возвращаемое значение. Вообще, функция getch() возвращает ASCII-код нажатой клавиши. Поскольку ASCII-код клавиши 1 равен 49, для получения значения индекса нужно вычесть из него 49. Если пользователь нажимает 1, функция возвращает 49, 49 - 49 = 0, что соответствует индексу первого элемента массива. Если поль­зователь нажмет 2, результатом вычисления будет 1 (50 - 49), и т.д. В цикле do-while предполагается, что будет нажата клавиша 1, 2 или 3. При нажатии любой другой клавиши цикл будет повторяться, ожидая правильного ввода.

Наконец, я хочу обратить ваше внимание на строку 66 листинга 2.4:

mailingListRecord temp = listArray[rec];

Эта строка не является необходимой в данной программе, но я исполь­зовал ее в качестве иллюстрации. В ней создается экземпляр структуры mailingListRecord, которому присваивается значение одной из структур мас­сива. Простое присваивание в данном случае оказалось возможно потому, что компилятор знает, как копировать одну структуру в другую. Он просто копирует все члены исходной структуры в соответствующие члены вновь созданного экземпляра.

В этой программе есть еще один фрагмент, который заслуживает вни­мания. Посмотрите на цикл do-while, который начинается со строки 59:

Теперь вы узнали о структурах. Скорее всего, вы не будете часто ис­пользовать структуры в своих программах. Тем не менее, важность этого раздела состоит в том, что он послужит своего рода примером при изучении классов на третий день, «Указатели, ссылки и функции в Си++».

Web-дизайн (с) 2010 All rights reserved