1.2. Программа на языке C++В С++ действие называется выражением, а выражение, заканчивающееся точкой с запятой, - инструкцией. Инструкция - это атомарная часть С++ программы, которой в программе на С++ соответствует предложение естественного языка. Вот примеры инструкций С++: int book_count = 0; book_count = books_on_shelf + books_on_order; cout << "значение переменной book_count: " << book_count; Первая из приведенных инструкций является инструкцией объявления. book_count
можно назвать идентификатором, символической переменной (или просто
переменной) или объектом. Переменной соответствует область в памяти
компьютера, соотнесенная с определенным именем (в данном случае book_count),
в которой хранится значение типа (в нашем случае целого). 0 - это константа.
Переменная book_count инициализирована значением 0. значение переменной book_count: 11273 если значение book_count равно 11273 в данной точке выполнения программы. int main() { readIn(); sort(); compact(); print(); return 0; } Исполнение программы начинается с выполнения первой инструкции функции main(),
в нашем случае - вызовом функции readIn(). Затем одна за другой исполняются
все дальнейшие инструкции, и, выполнив последнюю инструкцию функции main(),
программа заканчивает работу. return 0; Инструкция return обеспечивает механизм завершения работы функции. Если оператор
return сопровождается некоторым значением (в данном примере 0), это значение
становится возвращаемым значением функции. В нашем примере возвращаемое
значение 0 говорит об успешном выполнении функции main(). (Стандарт С++ предусматривает,
что функция main() возвращает 0 по умолчанию, если оператор return не использован
явно.) void readIn() { cout << "readIn()\n"; } void sort() { cout << "sort()\n"; } void compact() { cout << "compact()\n"; } void print() { cout << "print ()\n"; } Тип void используется, чтобы обозначить функцию, которая не возвращает никакого
значения. Наши заглушки не производят никаких полезных действий, они только
выводят на терминал сообщения о том, что были вызваны. Впоследствии мы заменим
их на реальные функции, выполняющие нужную нам работу. #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"; } int 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.) $ CC prog1.C Здесь $ представляет собой приглашение командной строки. CC - команда вызова
компилятора С++, принятая в большинстве UNIX-систем. Команды вызова компилятора
могут быть разными в разных системах. int main( { // ошибка - пропущена ')' readIn(): // ошибка - недопустимый символ ':' sort(); compact(); print(); return 0 // ошибка - пропущен символ ';' } ошибки типизации. С каждой переменной и константой в С++ сопоставлен некоторый
тип. Например, число 10 - целого типа. Строка "hello", заключенная
в двойные кавычки, имеет символьный тип. Если функция ожидает получить в качестве
параметра целое значение, а получает символьную строку, компилятор рассматривает
это как ошибку типизации. readIn() sort() compact() print() В С++ набор основных типов данных - это целый и вещественный числовые типы, символьный тип и логический, или булевский. Каждый тип обозначается своим ключевым словом. Любой объект программы ассоциируется с некоторым типом. Например: int age = 10; double price = 19.99; char delimiter = ' '; bool found = false; Здесь определены четыре объекта: age, price, delimiter, found, имеющие соответственно
типы целый, вещественный с двойной точностью, символьный и логический. Каждый
объект инициализирован константой - целым числом 10, вещественным числом 19.99,
символом пробела и логическим значением false. age = 33.333; то значением переменной age станет целое число 33. (Стандартные преобразования
типов, а также общие проблемы преобразования типов рассматриваются в разделе
4.14.) // заголовочный файл с определением типа string #include <string> string current_chapter = "Начинаем"; // заголовочный файл с определением типа vector #include <vector> vector<string> chapter_titles(20); Здесь current_chapter - объект типа string, инициализированный константой "Начинаем". Переменная chapter_titles - вектор из 20 элементов строкового типа. Несколько необычный синтаксис выражения vector<string> сообщает компилятору о необходимости создать вектор, содержащий объекты типа string. Для того чтобы определить вектор из 20 целых значений, необходимо написать: vector<int> ivec(20); Никакой язык, никакие стандартные библиотеки не способны обеспечить нас всеми
типами данных, которые могут потребоваться. Взамен современные языки программирования
предоставляют механизм создания новых типов данных. В С++ для этого служит механизм
классов. Все расширенные типы данных из стандартной библиотеки С++, такие как
строка, комплексное число, вектор, список, являются классами, написанными на
С++. Классами являются и объекты из библиотеки ввода/вывода. Содержание |
2012-01-13 09:41:14 георгий не могу понять вообще за что пишут Оставить комментарий: |