|
Программирование >> Инициализация объектов класса, структура
int main() { readIn() ; sort(); compact(); print (); return 0; может выглядеть эта функция для нашего алгоритма: Исполнение программы начинается с выполнения первой инструкции функции main() , в нашем случае - вызовом функции readIn() . Затем одна за другой исполняются все дальнейшие инструкции, и, выполнив последнюю инструкцию функции main() , программа заканчивает работу. Функция состоит их четырех частей: типа возвращаемого значения, имени, списка параметров и тела функции. Первые три части составляют прототип функции. Список параметров заключается в круглые скобки и может содержать ноль или более параметров, разделенных запятыми. Тело функции содержит последовательность исполняемых инструкций и ограничено фигурными скобками. В нашем примере тело функции main() содержит вызовы функций readIn() , sort() , compact() и print() . Последней выполняется инструкция return 0; Инструкция return обеспечивает механизм завершения работы функции. Если оператор return сопровождается некоторым значением (в данном примере 0), это значение становится возвращаемым значением функции. В нашем примере возвращаемое значение 0 говорит об успешном выполнении функции main(). (Стандарт С++ предусматривает, что функция main() возвращает 0 по умолчанию, если оператор return не использован явно.) Третья инструкция является инструкцией вывода. cout - это выходной поток, направленный на терминал, << - оператор вывода. Эта инструкция выводит в cout - то есть на терминал - сначала символьную константу, заключенную в двойные кавычки ( значение переменной book count: ), затем значение, содержащееся в области памяти, отведенном под переменную book count. В результате выполнения данной инструкции мы получим на терминале сообщение: I значение переменной book count: 11273 если значение book count равно 11273 в данной точке выполнения программ:. Инструкции часто объединяются в именованн1е группы, называемые функциями. Так, группа инструкций, необходимых для чтения исходного файла, объединена в функцию readIn() . Аналогичным образом инструкции для выполнения оставшихся подзадач сгруппированы в функции sort() , compact() и print() . В каждой С++ программе должна быть ровно одна функция с именем main() . Вот как void readIn() { cout << readIn()\n ; } void sort() { cout << sort()\n ; } Для начала вполне подойдут заглушки: void compact() { cout << compact() \n ; void print() { cout << print ()\n ; } Тип void используется, чтобы обозначить функцию, которая не возвращает никакого значения. Наши заглушки не производят никаких полезных действий, они только выводят на терминал сообщения о том, что были вызваны. Впоследствии мы заменим их на реальные функции, выполняющие нужную нам работу. Пошаговый метод написания программ позволяет справляться с неизбежными ошибками. Попытаться заставить работать сразу всю программу - слишком сложное занятие. Имя файла с текстом программы, или исходного файла, как правило, состоит из двух частей: собственно имени (например, bookstore) и расширения, записываемого после точки. Расширение, в соответствии с принятыми соглашениями, служит для определения назначения файла. Файл bookstore.h является заголовочным файлом для С или С++ программы. (Необходимо отметить, что стандартные заголовочные файлы С++ являются исключением из правила: у них нет расширения.) Файл bookstore.c является исходным файлом для нашей С программы. В операционной системе UNIX, где строчные и прописные буквы в именах файлов различаются, расширение .C обозначает исходный текст С++ программы, и в файле bookstore.C располагается исходный текст С++. В других операционных системах, в частности в DOS, где строчные и прописные буквы не различаются, разные реализации могут использовать разные соглашения для обозначения исходных файлов С++. Чаще всего употребляются расширения .cpp и .cxx: bookstore .cpp, bookstore.cxx. Заголовочные файлы С++ программ также могут иметь разные расширения в разных реализациях (и это одна из причин того, что стандартные заголовочные файлы С++ не имеют расширения). Расширения, используемые в конкретной реализации компилятора С++, указаны в поставляемой вместе с ним документации. Итак, создадим текст законченной С++ программы (используя любой текстовый редактор): Давайте закончим нашу программу, чтобы ее можно было откомпилировать и выполнить. Во-нервых, мы должны определить функции readIn (), sort(), comipact() и print(). #include <iostream> using namespace std; void readIn() { cout << readIn()\n ; } void sort() { cout << sort()\n ; } void compact() { cout << compact()\n ; } void print() { cout << print ()\n ; } main() readIn(); sort(); compact(); print(); return 0; Здесь iostream - стандартный заголовочный файл библиотеки ввода/вывода (обратите внимание: у него нет расширения). Эта библиотека содержит информацию о потоке cout, используемом в нашей программе. #include является директивой препроцессора, заставляющей включить в нашу программу текст из заголовочного файла iostream. (Директивы препроцессора рассматриваются в разделе 1.3.) Непосредственно за директивой препроцессора #include <iostream> следует инструкция using namespace std; Эта инструкция называется директивой using. Имена, используемые в стандартной библиотеке С++ (такие, как cout), объявлены в пространстве имен std и невидимы в нашей программе до тех пор, пока мы явно не сделаем их видимыми, для чего и применяется данная директива. (Подробнее о пространстве имен говорится в разделах 2.7 и 8.5.)1 После того как исходный текст программы помещен в файл, скажем prog1.C, мы должны откомпилировать его. В UNIX для этого в1полняется следующая команда: $ CC prog1.C Здесь $ представляет собой приглашение командной строки. CC - команда вызова компилятора С++, принятая в большинстве UNIX-систем. Команды вызова компилятора могут быть разными в разных системах. Одной из задач, выполняемых компилятором в процессе обработки исходного файла, является проверка правильности программы. Компилятор не может обнаружить 1 Во время написания этой книги не все компиляторы С++ поддерживали пространства имен. Если ваш компилятор таков, откажитесь от данной директивы. Большинство программ, приводимых нами, используют компиляторы, не поддерживающие пространство имен, поэтому директива using в них отсутствует.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |