16:14 C++ | Структура программы |
C++ | Структура программыЧто ж, программная среда установлена, и редактор настроен. Теперь можно приступать к изучению языка C++. Как вы уже знаете, программа состоит из инструкций, расположенных в текстовом файле. Структура обычной программы выглядит так: В самом начале программы подключаются заголовочные файлы, в которых содержатся объявления идентификаторов без их реализации. Например, чтобы иметь возможность вывести данные в окно консоли, необходимо подключить файл iostream, в котором содержится объявление объекта С помощью директивы После подключения заголовочных файлов производится объявление глобальных переменных. Переменные предназначены для хранения значений определенного типа. Глобальные переменные видны во всей программе, включая функции. Если объявить переменную внутри функции, то область видимости переменной будет ограничена рамками функции и в других частях программы использовать переменную нельзя. Такие переменные называются локальными. Объявить целочисленную переменную можно так: В этом примере мы объявили переменную с названием Если в команде компиляции указан флаг Хотя компилятор предупреждает о потери данных, программа все равно будет скомпилирована. Поэтому обращайте внимание на сообщения, которые выводятся на вкладке Проблемы и на различные подчеркивания кода в редакторе Qt Creator. Иначе программа будет работать, но результат выполнения будет некорректным. Если в команде компиляции не указан флаг Обратите внимание на то, что объявление переменной заканчивается точкой с запятой. Большинство инструкций в языке C++ должно заканчиваться точкой с запятой. Если точку с запятой не указать, то компилятор сообщит о синтаксической ошибке. Пример сообщения: Чтобы увидеть строку, о которой сообщает компилятор, сделайте двойной щелчок мышью на сообщении на вкладке Проблемы. В результате строка с ошибкой в программе станет активной. Обратите также внимание: на вкладке редактор пометил строку красным кругом. Если навести указать мыши на эту метку, то отобразится текст ошибки. При объявлении можно сразу присвоить начальное значение переменной. Присваивание значения переменной при объявлении называется инициализацией переменной. Чтобы произвести инициализацию переменной после ее названия указывается оператор Если глобальной переменной не присвоено значение при объявлении, то она будет иметь значение Обратите внимание на то, что перед оператором Тем не менее, следует придерживаться единообразия в коде и обрамлять операторы одним пробелом. Если присваивание производится в объявлении функции (задается значение параметра по умолчанию), то пробелы принято не указывать вовсе. Следует учитывать, что это не строгие правила, а лишь рекомендации по оформлению кода. Как видно из предыдущего примера, инструкция может быть расположена на нескольких строках. Концом инструкции является точка с запятой, а не конец строки. Например, на одной строке может быть несколько инструкций: Из этого правила есть исключения. Например, после директив препроцессора точка с запятой не указывается. В этом случае концом инструкции является конец строки. Директиву препроцессора можно узнать по символу После объявления глобальных переменных могут располагаться объявления функций и классов. Такие объявления называются прототипами. Схема прототипа функции выглядит следующим образом: Например, прототип функции, которая складывает два целых числа и возвращает их сумму выглядит так: После объявления функции необходимо описать ее реализацию, которая называется определением функции. Определение функции обычно располагается после определения функции Как видно из примера, первая строка в определении функции После объявления функции ставится точка с запятой. В определении функции внутри фигурных скобок должна быть описана реализация функции. Так как в объявлении указано, что функция возвращает целочисленное значение, следовательно, после описания реализации необходимо вернуть значение. Возвращаемое значение указывается после ключевого слова Пример определения функции Вся реализация функции должна быть расположена внутри фигурных скобок. Открывающая скобка может находиться на одной строке с определением функции, как в предыдущем примере, или в начале следующей строки. Пример: Многие программисты считают такой стиль наиболее приемлемым, т. к. открывающая и закрывающая скобки расположены друг под другом. На мой же взгляд образуется лишняя пустая строка. Так как размеры экрана ограничены, при наличии пустой строки на экран помещается меньше кода и приходится чаще пользоваться полосой прокрутки. Если размещать инструкции с равным отступом, то блок кода выделяется визуально и следить за положением фигурных скобок просто излишне. Тем более, что редактор Qt Creator позволяет подсветить парные скобки. Чтобы найти пару фигурных скобок следует поместить указатель ввода после закрывающей скобки. В результате скобки будут подсвечены. Какой стиль использовать, зависит от личного предпочтения программиста или от правил оформления кода, принятых в определенной фирме. Главное, чтобы стиль оформления внутри одной программы был одинаковым. Перед инструкциями внутри фигурных скобок следует размещать одинаковый отступ. В качестве отступа можно использовать пробелы или символ табуляции. При использовании пробелов размер отступа равняется трем или четырем пробелам для блока первого уровня. Для вложенных блоков количество пробелов умножают на уровень вложенности. Если для блока первого уровня вложенности использовалось три пробела, то для блока второго уровня вложенности должно использоваться шесть пробелов, для третьего уровня — девять пробелов и т. д. В одной программе не следует использовать и пробелы и табуляцию в качестве отступа. Необходимо выбрать что-то одно и пользоваться этим во всей программе. Закрывающая фигурная скобка обычно размещается в конце блока на отдельной строке. После скобки точка с запятой не указывается. Однако наличие точки с запятой ошибкой не является, так как инструкция может не содержать выражений вообще. Например, такая инструкция вполне допустима, хотя она ничего не делает: Самой главной функцией в программе является функция Первый прототип функции имеет синоним: Значение Второй прототип применяется для получения значений, указанных при запуске программы из командной строки (см. листинг 2.11). Параметры расположены внутри круглых скобок и разделены запятой. Параметр состоит из объявления типа данных и названия локальной переменной. Первый параметр ( Параметр Перед названием функции указывается тип возвращаемого значения. Ключевое слово Вместо безликого значения Пример: В листинге 2.3 приведен пример программы, структуру которой мы рассмотрели в этом разделе. Не расстраивайтесь, если что-то показалось непонятным. Все это мы будем изучать более подробно в следующих главах книги. На этом этапе достаточно лишь представлять структуру программы и самое главное уметь ее скомпилировать и запустить на выполнение. Листинг 2.3. Пример программы Объявление функций можно вынести в отдельный заголовочный файл и включить его с помощью директивы после инструкции: Так как мы указали название заголовочного файла HelloWorld.hpp внутри кавычек компилятор вначале будет искать его внутри проекта, а если не найдет, то в путях поиска заголовочных файлов. Удаляем эти инструкции из программы и сохраняем файл: Затем вставляем в файл HelloWorld.hpp код из листинга 2.4. Листинг 2.4. Содержимое файла HelloWorld.hpp Директивы препроцессора Из файла main.cpp вырезаем следующие строки: Переносим их в файл HelloWorld.cpp: В результате файл main.cpp будет выглядеть так: Теперь можно скомпилировать программу и запустить на выполнение. |
|
|
| Всего комментариев: 0 | |