Понедельник, Июль 5th, 2010

Шпоры по С++

Файлы, предназначенные для препроцессорного включения в модули программы, обычно снабжают защитой от повторного включения. Такое повторное включение может произойти, если несколько модулей, в каждом из которых запланировано препроцессорное включение одного и того же файла, объединяются в общий текст программы. Например, такими средствами защиты снабжены все заголовочные файлы (подобный iostream.h) стандартной библиотеки. Схема защиты от повторного включения может быть такой:
// Файл с именем filename
#ifndef _FILE_NAME
. . . // Включаемый текст файла filename
#define _FILE_NAME 1
#endif
Здесь _FILE_NAME — зарезервированный для файла filename препроцессорный идентификатор, который не должен встречаться в других текстах программы.
Для организации мультиветвлений во время обработки препроцессором исходного текста программы введена директива #elif константное выражение
Структура исходного текста с применением этой директивы такова : #if текст_для_if
#elif выражение_1 текст_1
#elif выражение_2 текст_2

. . .
#else текст_для_случая_else
#endif
Препроцессор проверяет вначале условие в директиве #if , если оно ложно (равно 0), вычисляется выражение_1, если выражение_1 равно 0, вычисляется выражение_2 и т.д. Если все выражения ложны, то в компилируемый текст включается текст_для_случая_else. В противном случае, т.е. при появлении хотя бы одного истинного выражения (в #if или #elif), начинает обрабатываться текст, расположенный непосредственно за этой директивой, а все остальные директивы не рассматриваются. Таким образом, препроцессор обрабатывает всегда только один из участков текста, выделенных командами условной компиляции.

22. Класс как расширенное понятие структуры.
Класс — это производный структурированный тип, введенный программистом на основе уже существующих типов. Класс задает некоторую структурированную совокупность типизированных данных и позволяет определить набор операций над этими данными.
Конструкция определения класса выглядит следующим образом:
ключ_класса имя_класса
{ список_компонентов};
ключ_класса — одно из служебных слов class, struct, union;
имя_класса — произвольно выбираемый идентификатор;
список_компонентов — определения и описания типизированных данных и принадлежащих классу функций.
Компонентами класса могут быть данные, функции, классы, перечисления, дружественные функции, дружественные классы, имена типов и битовые поля.
struct complex1
{ double real;
double imag;
void define (double re=0.0, double im=0.0)
{ real=re;
imag=im;
}
void display (void)
{ cout<<“real=“<

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42

Категория: Шпоры