Строковый литерал (string literal). Последовательность символов, заключенных в двойные кавычки (например, "а string literal"
).
Структура данных (data structure). Логическое объединение типов данных и возможных для них операций.
Тело функции (function body). Блок операторов, определяющий выполняемые функцией действия.
Типistream
. Библиотечный тип, обеспечивающий потоковый ввод.
Типostream
. Библиотечный тип, обеспечивающий потоковый вывод.
Тип возвращаемого значения (return type). Тип возвращенного функцией значения.
Тип класса (class type). Тип, определенный классом. Имя типа совпадает с именем класса.
Условие (condition). Выражение, результатом которого является логическое значение true
(истина) или false
(ложь). Нуль соответствует значению false
, а любой другой — значению true
.
Файл исходного кода (source file). Термин, используемый для описания файла, который содержит текст программы на языке С++.
Фигурная скобка (curly brace). Фигурные скобки разграничивают блоки кода. Открывающая фигурная скобка ({
) начинает блок, а закрывающая (}
) завершает его.
Функция (function). Именованный блок операторов.
Функцияmain()
. Функция, вызываемая операционной системой при запуске программы С++. У каждой программы должна быть одна и только одна функция по имени main()
.
Функция-член (member function). Операция, определенная классом. Как правило, функции-члены применяются для работы с определенным объектом.
Часть I
Основы
Все широко распространенные языки программирования предоставляют единый набор средств, отличающийся лишь специфическими подробностями конкретного языка. Понимание подробностей того, как язык предоставляет эти средства, является первым шагом к овладению данным языком. К наиболее фундаментальным из этих общих средств относятся приведенные ниже.
• Встроенные типы данных (например, целые числа, символы и т.д.).
• Переменные, позволяющие присваивать имена используемым объектам.
• Выражения и операторы, позволяющие манипулировать значениями этих типов.
• Управляющие структуры, такие как if
или while
, обеспечивающие условное и циклическое выполнение наборов действий.
• Функции, позволяющие обратиться к именованным блокам действий.
Большинство языков программирования дополняет эти основные средства двумя способами: они позволяют программистам дополнять язык, определяя собственные типы, а также использовать библиотеки, в которых определены полезные функции и типы, отсутствующие в базовом языке.
В языке С++, как и в большинстве языков программирования, допустимые для объекта операции определяет его тип. То есть оператор будет допустимым или недопустимым в зависимости от типа используемого объекта. Некоторые языки, например Smalltalk и Python, проверяют используемые в выражениях типы во время выполнения программы. В отличие от них, язык С++ осуществляет контроль типов данных статически, т.е. соответствие типов проверяется во время компиляции. Как следствие, компилятор требует сообщить ему тип каждого используемого в программе имени, прежде чем оно будет применено.
Язык С++ предоставляет набор встроенных типов данных, операторы для манипулирования ими и небольшой набор операторов для управления процессом выполнения программы. Эти элементы формируют алфавит, при помощи которого можно написать (и было написано) множество больших и сложных реальных систем. На этом базовом уровне язык С++ довольно прост. Его потрясающая мощь является результатом поддержки механизмов, которые позволяют программисту самостоятельно определять новые структуры данных. Используя эти средства, программисты могут приспособить язык для собственных целей без участия его разработчиков и необходимости ожидать, пока они удовлетворят появившиеся потребности.
Возможно, важнейшим компонентом языка С++ является класс, который позволяет программистам определять собственные типы данных. В языке С++ такие типы иногда называют "типами класса", чтобы отличить их от базовых типов, встроенных в сам язык. Некоторые языки программирования позволяют определять типы, способные содержать только данные. Другие, подобно языку С++, позволяют определять типы, в состав которых можно включить операции, выполняемые с этими данными. Одна из главных задач проекта С++ заключалась в предоставлении программистам возможности самостоятельно определять типы данных, которые будут так же удобны, как и встроенные. Стандартная библиотека языка С++ использует эту возможность для реализации обширного набора классов и связанных с ними функций.