Язык программирования Си. М.: Финансы и Статитика. 1985.
[8] George Orwell: 1984. Secker and Warburg, London. 1949. Русский перевод: Дж. Оруэлл. 1984. ...
[9] Martin Richards and Colin Whitby-Strevens: BCPL – The Language and Its Compiler. Cambridge University Press. 1980.
[10] L. Rosler (Chairman, ANSI X3J11 Language Subcommittee): Preliminary Draft Proposed Standard – The C Language. X3 Secretariat: Computer and Busineess Equipment Manufacturers Association, 311 First Street, N.W, Suite 500, Washington, DC 20001, USA.
[11] L.Rosler: The Evolution of C – Past and Future. AT amp;T Bell Laboratories Technical Journal. Vol.63 No.8 Part 2. October 1984. pp 1685-1700.
[12] Ravi Sethi: Uniform Syntax for Type Expressions and Declarations. Software Practice amp; Experience, Vol 11 (1981), pp 623-628.
[13] Bjarne Stroustrup: Adding Classes to C: An Exercise in Language Evolution. Software Practice amp; Experience, 13 (1981), pp 139-61.
[14] P.M. Woodward and S.G. Bond: Algol 68-R Users Guide. Her Majesty's Stationery Office, London. 1974.
[15] UNIX System V Release 2.0 User Reference Manual. AT amp;T Bell Laboratories, Murray Hill, New Jersey. December 1983.
[16] UNIX Time-Sharing System: Programmer's Manual. Research Version, Eighth Edition. AT amp;T Bell Laboratories, Murray Hill, New Jersey. February 1985.
[17] UNIX Programmer's Manual. 4.2 Berkeley Software Distribution University of California, Berkeley, California. March 1984.
Глава 1 Турне по С++
Единственный способ изучать новый язык программирования – писать на нем программы.
Брайэн Керниган
Эта глава представляет собой краткий обзор основных черт языка программирования С++. Сначала приводится программа на С ++, затем показано, как ее откомпилировать и запустить, и как такая программа может выводить выходные данные и считывать входные. В первой трети этой главы после введения описаны наиболее обычные черты С++: основные типы, описания, выражения, операторы, функции и структура программы. Оставшаяся часть главы посвящена возможностям С++ по определению новых типов, сокрытию данных, операциям, определяемым пользователем, и иерархии определяемых пользователем типов.
1.1 Введение
Это турне проведет вас через ряд программ и частей программ на С++. К концу у вас должно сложиться общее представление об основных особенностях С++, и будет достаточно информации, чтобы писать простые программы. Для точного и полного объяснения понятий, затронутых даже в самом маленьком законченном примере, потребовалось бы несколько страниц определений. Чтобы не превращать эту главу в описание или в осуждение общих понятий, примеры снабжены только самыми короткими определениями используемых терминов. Термины рассматриваются позже, когда будет больше примеров, способствующих обсуждению.
1.1.1 Вывод
Прежде всего, давайте напишем программу, выводящую строку выдачи:
#include «stream.h»
main() (* cout «„ «Hello, world\n“; *)
Строка #include «stream.h» сообщает компилятору, чтобы он включил стандартные возможности потока ввода и вывода, находящиеся в файле stream.h. Без этих описаний выражение cout «„ „Hello, world\n“ не имело бы смысла. Операция „« («пометить в“*) пишет свой первый аргумент во второй (в данном случае, строку «Hello, world\n“ в стандартный поток вывода cout). Строка – это последовательность символов, заключенная в двойные кавычки. В строке символ обратной косой \, за которым следует другой символ, обозначает один специальный символ, в данном случае, \n является символом новой строки. Таким образом выводимые символы состоят из Hello, world и перевода строки.
– * Программирующим на C «« известно как операция сдвига влево для целых. Такое использование «« не утеряно, просто в дальнейшем «« было определено для случая, когда его левый операнд является потоком вывода. Как это делается, описано в #1.8. (прим. автора)
Остальная часть программы
main() (* ... *)
определяет функцию, названную main. Каждая программа должна содержать функцию с именем main, и работа программы начинается с выполнения этой функции.
1.1.2 Компиляция
Откуда появились выходной поток cout и код, реализующий операцию вывода ««? Для получения выполняемого кода написанная на С++ программа должна быть скомпилирована. По своей сути процесс компиляции такой же, как и для С, и в нем участвует большая часть входящих в последний программ.