Читайте также:
|
|
Содержание.
История создания C и C++. Стандарты языков. Структура простой программы – первое знакомство. Функция main().Заголовочные файлы и директивы препроцессора. Аргументы командной строки. “Новые” заголовочные файлы. Первое представление о ввод-выводе. Общие замечания и пропедевтика. Объекты и объектно-ориентированное программирование (Г. Буч). Некоторые термины. Алфавит и лексемы языка C++. Символы и идентификаторы. Выражения, лево-допустимые и право-допустимые значения. Аргументы и параметры. Термины: модуль, единица трансляции, программа. Компиляция. Создание программы: Linux, Windows.
C и C++ - два наиболее важных языка программирования.
Они - фундамент современного программирования.
C придуман Денизом Ричи (Dennis Ritchie) в 1970 г.. C – это язык среднего уровня, т. е. он объединяет управляющие структуры языка высокого уровня с возможностью манипулировать битами, байтами и указателями (адресами). С дает программисту почти полный контроль над машиной. Первый ANSI-стандарт С - конец 1989 г. (American National Standards Institute): ссылаются как на C89. Этот стандарт был также принят ISO (International Standards Organization). C89 слегка подправлен в 1995г..
C++ (начиная с 1979г). Автор языка Бьярн Страуструп (Bjarne Stroustrup). Развитие и шлифовка C++ продолжались в 1980-е и большую часть 1990-х годов. Наконец, в 1998г. был принят стандарт С++ ANSI/ISO. C++, первоначально, можно было считать объектно=ориентированной версией языка C. C++ построен на основе стандарта C89, включая его уточнения, сделанные в 1995 г. Фактически, на версию С стандарта C89 ссылаются как на “C-подмножество C++.” Скоро С++ вырос до языка программирования с “собственными правами”. На сегодня, С++ - наиболее мощный язык для компьютеров из когда-либо разработанных языков.
В 1999 г. принят новый ANSI/ISO стандарт языка C. Эта версия называется C99. В нем некоторые из новых черт взяты из C++, а некоторые полностью новые. Таким образом, С99 уже не совместимым с C++ (не является чистым подмножеством языка С++). Однако, все еще не трудно писать код совместимый как с С, так и с С++. До 2003 года не было компиляторов, которые бы обрабатывали все новшества стандарта С99.
Следующая таблица дает синопсис соотношений между C89, C99 и C++.
C89 | Первоначальный ANSI/ISO стандарт C. C89 – то, что имеют ввиду большинство программистов, когда говорят о языке С. |
C++ | Объектно-ориентированная версия C. Текущий ANSI/ISO стандарт C++ есть надстройка над С89. Таким образом, C89 образует подмножество C++. |
C99 | Последний стандарт для С. Включает весь C89, но добавляет несколько новых функциональных возможностей. Некоторые из них не поддерживаются текущим стандартом C++. |
C и C++ - очень большая тема. C++ поддерживает процедурное, объектно-ориентированное и обобщенное программирование. Невозможно охватить за “один присест” все аспекты программирования на этих важных языках. Поэтому, начнем с простейших примеров и понятий, изучая прежде всего С++, а С изредка будем упоминать там, где это посчитаем необходимым.
Структура C++ программы
Считается, что лучший способ первого знакомства с языком программирования - изучить какую-нибудь простую программу. Так и поступим (традиция).
// наша первая программа на C++ #include <iostream.h> int main (){ cout << "Типа,Hello Bill!"; return 0;} | Типа, Hello Bill! |
Слева показан исходный код нашей первой программы, назовем ее, скажем, hello.cpp. Справа – результат ее работы после компиляции и выполнения. Слово “Типа” является ключевым словом Нового Русского языка, а не языка С++, хотя вульгарно актуализирует в обиходной речи основное понятие С++ как языка ООП: понятие Типа Данных. Когда нам трудно точно описать объект, о котором идет речь, мы говорим, что объект имеет Тип такой-то, т.е., объект типа, например, Гладкий Оператор (Smooth Operator). Как программу откомпилировать – зависит от используемого компилятора. Компилятор – это программа, транслирующая исходные коды в коды машины.
Консольная программа – это программа, которая общается с пользователем через консоль, т.е. данные вводятся с клавиатуры, а текст выводится, в основном, на экран монитора.
Этот вид программ поддерживается стандартом ANSI-C++ и большинством существующих операционных систем. Метод программирования и результат слабо варьируется для разных систем. Способ компиляции разный для компиляторов, встроенных в интегрированную среду разработки, и для компиляторов, работающих с командной строкой.
Hello.cpp одна из простейших программ, которая может быть написана на C++, но она уже включает в себя базовые компоненты, присутстствующие в каждой C++-программе. Рассмотрим их последовательно:
// наша первая программа на C++
Это строка комментария. Все строки, начинающиеся двумя прямыми слэшами (двумя “косыми” линиями) в C++ считаются комментариями и не влияют на поведение программы (пропускаются компилятором). Программист использует комментарии для краткого документирования исходного программного кода. В нашем случае мы просто сообщаем, что пока “ходим пешком под стол и радуемся жизни”.
#include <iostream.h>
Предложения начинающиеся со знака “фунт” (#) являются директивами для препроцессора.
Препроцессор – “часть” компилятора, которая выполняет некие предварительные операции над входным текстом программы и передает его на дальнейшую обработку. Директивы препроцессора не рассматриваются как исполняемый код, а лишь передают указания компилятору. В конкретном случае предложение #include <iostream.h> сообщает препроцессору, что нужно включить в текст программы заголовочный файл (header) стандартной библиотеки ввода-вывода iostream. Этот специальный файл содержит объявления основной библиотеки ввода-вывода в C++. Нам он необходим для вывода текста на экран..
В общем случае, директивы препроцессора представляют собой инструкции, записанные в тексте программы на С++, и выполняемые до трансляции программы. Директивы препроцессора позволяют изменить текст программы, например, заменить некоторые лексемы в тексте, вставить текст из другого файла, запретить трансляцию части текста и т.п. Все директивы препроцессора начинаются со знака #. После директив препроцессора точка с запятой не ставится.
int main ()
Эта линия кода констатирует, что мы имеем функцию, называемую main() . Вместе с телом функции, т.е. той частью текста, которая заключена в фигурные скобки, { и }, мы получим определение функции. Таким образом, определение состоит из двух частей: заголовка функции тела функции. Тело функции – это последовательность объявлений, определений и инструкций (операторов). Функция main является точкой входа, с которой любая C++-программа начинает свое выполнение. Сама программа может состоять из многих функций и других программных элементов, функция main() только одна, и программа стартует с обращения к ней. Круглые скобки пишутся для всех функций в С++, и могут заключать список аргументов (или параметров). Сами круглые скобки трактуются (и являются) как операция обращения к функции.
В ОС Windows существует аналог функции main() – WinMain(). Различие между MS-DOS программой и Windows программой в способе взаимодействия программы и ОС: первая, при необходимости, вызывает операционную систему, вторая использует поступающие от ОС сообщения.
Рис. В-1. Функция main() .
cout << " Типа , Hello Bill"; // Gates, естественно
Эта инструкция делает основную работу в нашей программе. В С++ полную инструкцию мы будем называть оператором, непутать с операцией. Операторы завершаются точкой с запятой. Распространенная ошибка– забыть про символ;.
cout – это, так называемый, стандартный выходной поток (обычно, на экран), и все предложение помещает в выходной поток последовательность символов (наше приветствие).
cout объявлен в заголовочном файле iostream.h , который включен в программу директивой #include.
Поток – это некая абстракция, отражающая перемещение данных от источника к приемнику. Операция << называется операцией вставки. Существует и операция ввода >>
Ввод с терминала, называемый стандартным вводом, он обеспечивается объектом (входным потоком) cin, например: cin >> n;. Операция >> называется операцией извлечения.
return 0;
Инструкция return приводит к завершению функции main() и возвращает код завершения – целое число (в нашем случае 0). Это самый обычный путь завершения программы, выполненной без ошибок.
---------------------------------------------------------------------------------------------------------------
Итак, в нашей программе имеются: комментарий (//), указание для препроцессора (#), формальное объявление функции (функция main) и, наконец, оператор обращения к выходному потоку cout << и оператор завершения функции (return 0;), эти последние образуют тело функции, заключенное в блок, ограниченный фигурными скобками ( {} ). Директивы препроцессора не завершаются точкой с запятой, они не являются истинными операторами, т.е. сами по себе не продуцируют никакого кода.
---------------------------------------------------------------------------------------------------------------
Наша программа записана в виде отдельных строк, чтобы облегчить ее восприятие. В общем случае, формат написания исходного кода – свободный, но без нарушения целостности лексем языка и правил синтаксиса. Т.е.:
int main (){ cout << " Hello Billy "; return 0;}эквивалентно одной линии кода int main () { cout << " Hello Billy "; return 0; }.
А код int main (){ cout << "Hello Bill!\n"; cout << "Я учусь объектному ориентированию в С++."; return 0;}
эквивалентен
int main () { cout << " Hello Bill!\n"; cout << " Я учусь объектному ориентированию в С++. "; return 0; }.
Здесь, “символ” \n – “перевод строки”, специальный управляющий символ (escape -последовательность). Он “сообщает” объекту cout, что последующий вывод на экран нужно начинать с новой строки. “Пробельные” символы служат; в основном, для форматирования текста программы.
Дата добавления: 2015-11-16; просмотров: 43 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Множественное наследование. | | | Новые” заголовочные файлы. |