2.1 История и назначение языка C++
Разработчиком языка C++ является Бьерн Страуструп. В своей работе он опирался на опыт создателей языков Симула, Модула 2, абстрактных типов данных. Основные работы велись в исследовательском центре компании Bell Labs.
Непосредственный предшественник C++ – язык Си с классами – появился в 1979 году, а в 1997 году был принят международный стандарт C++, который фактически подвел итоги его 20-летнего развития. Принятие стандарта обеспечило единообразие всех реализаций языка C++. Не менее важным результатом стандартизации стало то, что в процессе выработки и утверждения стандарта язык был уточнен и дополнен рядом существенных возможностей.
На сегодня стандарт утвержден Международной организацией по стандартизации ISO. Его номер ISO/IEC 14882. ISO бесплатно не распространяет стандарты. Его можно получить на узле американского национального комитета по стандартам в информационных технологиях:
www.ncits.org
В России следует обращаться в ВНИИ Сертификации:
http://www.vniis.ru
Проекты стандарта имеются в свободном доступе:
ftp://ftp.research.att.com/dist/c++std/WP/CD2/
http://www.research.att.com/~bs/bs_faq.html
Язык C++ является универсальным языком программирования, в дополнение к которому разработан набор разнообразных библиотек. Поэтому, строго говоря, он позволяет решить практически любую задачу программирования. Тем не менее, в силу разных причин (не всегда технических) для каких-то типов задач он употребляется чаще, а для каких-то – реже.
C++ как преемник языка Си широко используется в системном программировании. На нем можно писать высокоэффективные программы, в том числе операционные системы, драйверы и т.п. Язык C++ – один из основных языков разработки трансляторов.
Поскольку системное программное обеспечение часто бывает написано на языке Си или C++, то и программные интерфейсы к подсистемам ОС тоже часто пишут на C++. Соответственно, те программы, даже и прикладные, которые взаимодействуют с операционными системами, написаны на языке C++.
Распределенные системы, функционирующие на разных компьютерах, также разрабатываются на языке C++. Этому способствует то, что у широко распространенных компонентных моделей CORBA и COM есть удобные интерфейсы на языке C++.
Обработка сложных структур данных – текста, бизнес-информации, Internet-страниц и т.п. – одна из наиболее распространенных возможностей применения языка. В прикладном программировании, наверное, проще назвать те области, где язык C++ применяется мало.
Разработка графического пользовательского интерфейса на языке C++ выполняется, в основном, тогда, когда необходимо разрабатывать сложные, нестандартные интерфейсы. Простые программы чаще пишутся на языках Visual Basic, Java и т.п.
Программирование для Internet в основном производится на языках Java, VBScript, Perl.
В целом надо сказать, что язык C++ в настоящее время является одним из наиболее распространенных языков программирования в мире.
2.2 Простейшая программа на языке C++
Самая короткая программа на языке C++ выглядит так:
// Простейшая программаint main() { return 1; } Первая строчка в программе – комментарий, который служит лишь для пояснения. Признаком комментария являются два знака деления подряд (//).
main – это имя главной функции программы. С функции main всегда начинается выполнение. У функции есть имя (main), после имени в круглых скобках перечисляются аргументы или параметры функции (в данном случае у функции main аргументов нет). У функции может быть результат или возвращаемое значение. Если функция не возвращает никакого значения, то это обозначается ключевым словом void. В фигурных скобках записывается тело функции – действия, которые она выполняет. Оператор return 1 означает, что функция возвращает результат – целое число 1.
Если мы говорим об объектно-ориентированной программе, то она должна создать объект какого-либо класса и послать ему сообщение. Чтобы не усложнять программу, мы воспользуемся одним из готовых, предопределенных классов – классом ostream (поток ввода-вывода). Этот класс определен в файле заголовков "iostream.h". Поэтому первое, что надо сделать – включить файл заголовков в нашу программу:
#include <iostream.h>int main() { return 1; } Кроме класса, файл заголовков определяет глобальный объект этого класса cout. Объект называется глобальным, поскольку доступ к нему возможен из любой части программы. Этот объект выполняет вывод на консоль. В функции main мы можем к нему обратиться и послать ему сообщение:
#include <iostream.h>int main(){ cout << "Hello world!" << endl; return 1;} Операция сдвига << для класса ostream определена как "вывести". Таким образом, программа посылает объекту cout сообщения "вывести строку Hello world!" и "вывести перевод строки" (endl обозначает новую строку). В ответ на эти сообщения объект cout выведет строку "Hello world!" на консоль и переведет курсор на следующую строку.