Основы C++: базовый синтаксис и примеры кода

C++

Ключевые слова C ++

Следующий список показывает зарезервированные слова в C ++. Эти зарезервированные слова не могут использоваться как константные или переменные или любые другие имена идентификаторов.

asm else new this
auto enum operator throw
bool explicit private true
break export protected try
case extern public typedef
catch false register typeid
char float reinterpret_cast typename
class for return union
const friend short unsigned
const_cast goto signed using
continue if sizeof virtual
default inline static void
delete int static_cast volatile
do long struct wchar_t
double mutable switch while
dynamic_cast namespace template

Литература

Роберт Лафоре: Объектно-ориентированное программирование в С++

Скотт Мэйерс: Эффективное использование С++. 55 верных способов улучшить структуру и код ваших программ

Скотт Мейерс: Эффективный и современный С++. 42 рекомендации по использованию C++11 и C++14

Николай Литвиненко: Технология программирования на C++. Начальный курс

Язык С++ возник в начале 1980-х годов, когда сотрудник фирмы Bell Labs Бьёрн Страуструп придумал ряд усовершенствований к языку C под собственные нужды. Когда в конце 1970-х годов Страуструп начал работать в Bell Labs над задачами теории очередей, он обнаружил, что попытки применения существующих в то время языков моделирования оказываются неэффективными, а применение высокоэффективных машинных языков слишком сложно из-за их ограниченной выразительности. Так, язык Симула имеет такие возможности, которые были бы очень полезны для разработки объемного программного обеспечения, но работает слишком медленно, а язык BCPL достаточно быстр, но слишком близок к языкам низкого уровня и не подходит для разработки объемного программного обеспечения. Страуструп дополнил язык C возможностями работы с классами и объектами. В результате практические задачи моделирования оказались доступными для решения как с точки зрения времени разработки (благодаря использованию Симула-подобных классов), так и с точки зрения времени вычислений (благодаря быстродействию C).
При создании C++ Бьёрн Страуструп ставил цели:

  • Получить универсальный язык со статическими типами данных, эффективностью и переносимостью языка C.
  • Непосредственно и всесторонне поддерживать множество стилей программирования, в том числе процедурное программирование, абстракцию данных, объектно-ориентированное программирование и обобщённое программирование.
  • Дать программисту свободу выбора, даже если это даст ему возможность выбирать неправильно.
  • Максимально сохранить совместимость с С: любая конструкция, допустимая в обоих языках, должна в каждом из них обозначать одно и то же и приводить к одному и тому же поведению программы.
  • Избегать особенностей, которые зависят от платформы или не являются универсальными.
  • «Не платить за то, что не используется» — неиспользуемые языковые средства не должны приводить к снижению производительности программ.
  • Не требовать сложной среды программирования.

 
Все основные операции, операторы, типы данных языка Си присутствуют в С++. Некоторые из них усовершенствованы и добавлены принципиально новые конструкции, которые и позволяют говорить о С++ как о новом языке, а не просто о новой версии языка

Стоит ли учить язык программирования С

Если перед вами стоит проблема выбора первого языка программирования, большинство советчиков в первую очередь порекомендуют обратить внимание на Python. Действительно, по нему есть огромное количество курсов и обучающих материалов

Скорее всего на втором месте в этом рейтинге окажется Java, по той же причине.

Правильный вопрос не «Стоит ли учить», а «Для чего учить»

Но ряд программистов уверены, что именно Си является лучшим вариантом для новичка. С технической точки зрения писать на нем сложнее, и обучение займет чуть больше времени. Но умение создавать чистый код позволяет получить фундаментальные знания, после которых не возникнет проблем с профессиональным развитием.

Самое поразительное, что даже популярные онлайн-курсы в России очень редко предлагают пройти обучение по Си. Запрос «курсы язык программирования С» в Google Search дает отсылки на программы по Python, C# или С++. Очень странно, ведь в самом авторитетном рейтинге от TIOBE Programming Community index до 2021 года язык Си занимал первое место.

Неужели придется искать самоучитель и заниматься без помощи наставников? На самом деле ситуация не настолько критичная. Есть отличные проекты, тот же МГТУ имени Н.Э. Баумана предлагает интересный вариант подготовки за 48 академических часов. Кроме того, в сети выложено в свободный доступ огромное количество руководств пользователя, и само сообщество Си как открытого проекта очень лояльно относится к начинающим.

И в заключение: работодатели крайне редко публикуют вакансии с требованием знания только одного языка программирования. Им нужны универсальные специалисты. И здесь разработчик с навыками кодирования на Си вне конкуренции. Если человек освоил низкоуровневый язык, ему гораздо проще получить дополнительную квалификацию. Изучить какую-то библиотеку совсем не сложно. Самое трудное — понять, как взаимодействуют различные элементы машинного кода. И здесь в программисты Си оказываются в числе лидеров.

А мне нужен С++?

Да, если вы хотите разрабатывать сложные продукты и сервисы. Опытные С++-программисты — это разработчики ИИ, беспилотных автомобилей, нейронных сетей, банковских, поисковых и ГИС-систем, операционных систем, микроконтроллеров, браузеров, серверов и видеоигр.

Основные области использования C++

  • разработка игр и игровых движков (Unreal Engine, Unity);
  • GPU-вычисления (cryptocurrency, deep learning);
  • разработка высоконагруженных и высокопроизводительных приложений.

С++ — производительный язык, он помогает дорожным картам в GPS не тупить и строить оптимальные маршруты, любимым играм — не лагать и выдавать максимальное качество с выкрученными до предела настройками графики, банковским сервисам — быть круглосуточными, а переводам — моментальными.

Производительность — важная характеристика любой компьютерной игры. Counter-Strike, StarCraft: Brood War, Diablo I, World of Warcraft — все они появились давно и были написаны на C++, как и операционные системы консолей Xbox и PlayStation, ядра популярных игровых движков Unreal Engine или Unity, на базе которых сделано огромное количество 3D-игр, симуляторов, шутеров и стратегий.

Все потому, что на С++ можно использовать объектно-ориентированное программирование, а когда понадобится — обратиться к низкоуровневым возможностям языка, позволяющим хорошо оптимизировать игру под конкретные платформы и очень эффективно производить расчеты для графики. По этой же причине С++ применяется в графических редакторах (Adobe Photoshop).

Благодаря распараллеливанию (одновременному выполнению большого количества несложных математических операций) язык подходит для биткоинов и нейросетей. Первые можно майнить на С++, вторые — обучать: большинство библиотек для глубокого обучения (TensorFlow, Caffe, Shogun, Pytorch C++ API и т.д.) используют С++-код CUDA и OpenCL.

С++ незаменим для высоконагруженных приложений, его используют для разработки поисковых движков, роботов торговых бирж, систем управления базами данных и маршрутизации сетевого трафика.

С помощью С++ Mozilla Corporation разработала opensource-браузер Firefox, была создана Amadeus — система электронного бронирования авиабилетов, гостиниц, круизных туров и проката автомобилей (через нее проходит 5000 транзакций в секунду, более миллиарда транзакций ежедневно), благодаря С++ работают Яндекс.Поиск и поисковый движок Google.

С++ нужен не только программистам, но и:

  • техническим художникам: связующему звену между обычными художниками и 3D-моделистами на игровом проекте и разработчиками игрового движка (у которых очень популярен С++) для решения проблем необходимо разбираться в языке и понимать, как все запрограммировано;
  • математикам: такие типовые задачи вычислительной математики, как решение систем алгебраических уравнений, дифференцирование и интегрирование функций, оптимизация, интерполяция, экстраполяция и аппроксимация, решаются при помощи реализаций численных методов на С++;
  • физикам и химикам: на С++ моделируются среды и физические процессы;
  • музыкантам: да, даже им! Это могут быть исследования акустических эффектов, попытки формализации творческого процесса или даже создание музыки: на «‎алгорейвах»‎ люди зажигают под треки, генерируемые алгоритмами, которые вживую на сцене пишет диджей-программист, — вот это настоящий киберпанк.

А еще C++ — это круто, потому что с его помощью:

  • пишут критическое ПО для истребителей F-16 и F-35;
  • разрабатывают пакеты программ и библиотек ROOT для обработки экспериментальных данных физики высоких энергий;
  • по поверхности Марса самостоятельно ездят роверы NASA и летает телескоп Хаббл;
  • делает практически все Microsoft (Windows OS, пакет Office, Internet Explorer, Visual Studio);
  • творят искусство (генеративное) художники: пишут алгоритмы для генерации предметов живописи и скульптур.

Плюсы и минусы языка

Плюсы

  • Высокая производительность, потому что он не накладывает никакой избыточной нагрузки на программу, не использующую какие-либо возможности.
  • Поддержка множества стилей программирования (процедурное программирование, абстракцию данных, объектно-ориентированное программирование и обобщенное программирование). Поэтому разработчик может сам выбрать, в каком стиле ему писать программу.
  • Большое сообщество.

Никита Лестенко:

«‎Помимо того что стандарты С++ постоянно обновляются и в него внедряется все больше улучшений, у языка огромное сообщество программистов. Учитывая сложность языка — не лентяев и опытных. Вы не останетесь один на один с проблемой: помимо литературы — от фундаментальных трудов до новых справочников, — у вас будет код, наработанный десятилетиями».

Минус

Высокий порог входа. Решения об изменениях в С++ принимают на заседаниях комитета, участие в которых формально может принять любой разработчик. Но отправляться на такие собрания в другую страну за свой счет трудно, поэтому большинство участников — представители крупных IT-корпораций, таких как Google, Яндекс или Facebook. А вот представителей интересов студентов или стартапов немного. Поэтому эксперты могут принять концепции, которые им кажутся очевидными, а для остальной аудитории они будут сложными.

Главный секрет C++

А теперь мы напишем ту же самую программу, но уже с классами. И для этого нам нужно знать главный секрет C++.

Главный секрет C++
Класс — это объединение кода и данных.

Как видите, секрет достаточно прост. Запишем нашу программу но уже с помощью класса:

#include <iostream>

using namespace std;

class Summa
{
public:
int x;
int y;
int Sum()
{
return x + y;
}
};

int main()
{
// Программирование с классами
Summa s;
s.x = 6;
s.y = 12;
z = s.Sum();

cout << «Sum = » << z << endl;

return 0;
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

#include <iostream>
 

usingnamespacestd;

classSumma

{

public

intx;

inty;

intSum()

{

returnx+y;

}

};

intmain()

{

// Программирование с классами

Summas;

s.x=6;

s.y=12;

z=s.Sum();

cout<<«Sum = «<<z<<endl;

return;

}

Итак, что мы сделали?

Мы создали класс Summa с помощью ключевого слова class. Но класс — это просто шаблон. Для использования класса нужно получить экземпляр класса. Это мы сделали в строке «Summa s;». После того, как эта строка выполнится, мы получим экземпляр класса, к которому же можно обращаться. При этом переменные класса называются свойства, а функции класса называются методы.

Обратите внимание, что функция Sum не требует указания параметров, потому она берет эти параметры из свойств класса. Обращение к свойствам и методам производится с помощью точки

Например, «s.x» — означает, что мы обращаемся к свойству экземпляра s класса Summa

Обращение к свойствам и методам производится с помощью точки. Например, «s.x» — означает, что мы обращаемся к свойству экземпляра s класса Summa.

Ключевое слово public означает, что свойства и методы класса доступны вне класса.

Операции¶

Характеристики операций

  • Ассоциативность (левоассоциативные, правоассоциативные)
  • Количество аргументов (унарные, бинарные, тернарные)
  • Приоритет
  • Префиксная и постфиксная форма (для ++, — —)

Ассоциативность

a=b=c=d=e

a+b+c+d+e

Аргументы

a+b

!a

(a>b)?c:d

Приоритет

a+b*c/d-e

a=b==c

Результат операций

В языке Си у операций могут быть следующие результаты:

  • Числовая константа, означающая результат присвоения, математического выражения, адрес ячейки памяти.
  • Числовая константа, означающая логическое значение (0 — ложь, 1 — истина).
  • Ссылка на область памяти.

В Си не имеется встроенного логического типа со значениями true и false, но любое ненулевое целое значение означает истину, а нулевое — ложь.

Арифметические операции

Знак Операция
  • *
Умножение
Деление и целочисленное деление нацело
% Деление по модулю и остаток от деления
  • +
Сложение
Вычитание

Знак всегда означает деление. Однако если с обеих сторон от этого знака стоят целые величины (константы, переменные или их комбинации), он означает целочисленное деление. Если в результате такого деления получается остаток, С++ его отбрасывает.

Знак % означает выделение остатка при целочисленном делении. Эта операция требует, чтобы с обеих сторон от ее знака стояли целые величины

a = 102;       // 5 (остатка нет)
b = 300100;    // 3 (остатка нет)
c = 103;       // 3 (остаток отброшен)
d = 300165;    // 1 (остаток отброшен)
e = 10%3;       // 1 (остаток)
f = 204;       // 5 (остатка нет)

Присваивание

Особенностью Си является возможность комбинирования операции присваивания с другими операциями, а также выполнение множественного присваивания.

a=b=c=d=10;
value=15*(a=9-b);

Существуют два класса выражений:

l-value (левостороннее выражение. Может стоять слева от присваивания)

r-value (правостороннее выражение. Может стоять справа от присваивания)

Составное присваивание

Эта группа операций позволяет совместить арифметику и присваивание, что дает выразительность и удобочитаемость программам.

Операция Пример Эквивалент
B+ = 500; B= b+ 500;
– = С– = 50; C = с – 50;
D* = 1.2; D = d*1.2;
/ = F/ = 50; f = f/.50;
% = m% = 7; M = m% 7;

Преобразование типов

В различных выражениях могут встречаться данные как одного, так и разных типов. Компилятор может выполнять операцию приведения типов по-умолчанию, действуя согласно простого правила: короткие типы приводятся к длинным. Если необходимо изменить стандартное преобразование, то вводят явное приведение типов.

int a=10,b=20;
float c=7.9,d;

d=c+(float)a;        // a приводится к float
b=(int)(d+(float)b); // двойное приведение

Сравнение

Операции сравнения являются бинарными и используются для сравнения двух значений

Операции Описание
== Равно
> Больше
< Меньше
>= Больше или равно
<= Меньше или равно
!= Не равно

Результатом операции сравнения выступают целые числа 0 и 1. Первое означает ложь, второе — истину.

Не следует путать присваивание = и равенство ==

Логические операции

Для создания более сложных выражений из простых существуют логические операции, которые реализуют логическое отрицание, умножение и сложение.

d = (a==b) && printf("Hello\n");

В приведенном примере, если \(a\) равно \(b\) , строка Hello появляется на экране, иначе не появляется.

Пример выражения Результат
-4+6 2
c=3+8 11
5>3 1
6+(c=3+8) 17
6+c=3+8 Ошибка!
z=(x>y)?1;
max=(a>b)?ab;

Инкремент и декремент

Данные операции могум использоваться в префиксной и постфиксной формах. основная разница — изменение приоритета.

Код

int a=,b=;
a=++b;

будет эквивалентен следующему

int a=,b=;
b=b+1;
a=b;

Код

int a=,b=;
a=b++;

будет эквивалентен следующему

int a=,b=;
a=b;
b=b+1;

Правила вычислений

  1. Постфиксная форма
  2. СНАЧАЛА переменная изменяется на 1;
  3. и только после этого используется в выражении.
  4. Префиксная форма
  5. старое значение переменной сохраняется для использования в дальнейшем выражении, в котором встретилась эта переменная;
  6. и только ПОСЛЕ этого ее значение СРАЗУ ЖЕ изменяется на 1.

Операции инкремента/декремента

Корректные выражения

int x=10;
int y=2;
int z=x++ + --y;
// вывод 11
printf("%d",z);

Некорректные выражения

int y=2,n=3;
// результат может быть разным
int nextnum=(y+n++)*n;
// вывод 4 15 в MS VC++ 2005
printf("%d %d",n,nextnum);
z=++x + x++; // результат не определён
++x++;       // попытка изменить l-value

Что можно сказать о следующей программе?

int main()
{
  int x=10,y=20;
  x++=--y;
  printf("%d %d\n",x,y);
  return ;
}

pause

Ошибка компиляции: l-value required as left operand of assignment

Приложения программирования на C++

Вот некоторые важные приложения C++:

  • C++ используется для разработки всех видов встроенных систем, таких как умные часы, мультимедийные системы в автомобилях, устройства IoT и т. д.
  • C++ также позволяет разрабатывать серверы и высокопроизводительные программы для микроконтроллеров.
  • Язык программирования C++ используется для разработки практически всех основных операционных систем, таких как Windows, Mac OSX и Linux
  • Разработка игр — основное применение C++. Вот почему C++ становится все более популярным среди разработчиков игр.
  • C++ широко используется при разработке медицинских и инженерных приложений, таких как программное обеспечение для аппаратов МРТ, высокопроизводительные системы CAD/CAM и т. д.

Что такое С++

С++ (Си-Плюс-Плюс) — это компилируемый язык программирования общего назначения. Это один из самых популярных языков программирования, который используется для решения широкого круга задач: создание операционных систем, разных прикладных программ, драйверов устройств, приложений для встраиваемых систем, высокопроизводительных серверов, игр и др.

Синтаксис С++ заимствован от языка С, но расширен новым возможностями. Кроме того, в отличие от С, язык С++ полностью поддерживает объектно-ориентированное программирование (ООП).

С++ был разработан в начале 1980-х годов. Но современный С++, конечно же, сильно отличается от того, что было в 80-х.

Основной замысел С++ — дать полную свободу программисту, пусть даже иногда в ущерб каким-то другим вещам.

Классификация

Переменные в С ++ могут быть:

  1. Глобальными. Это переменные, которые «видны» всему приложению. Их нужно объявить в самом начале кодификации.
  2. Локальными. Объявление такой переменной происходит в конкретном блоке. Код будет «разбирать» соответствующие ячейки памяти только в пределах определенной части утилиты.

Это – основной тип классификации. Его должен знать каждый программер, чтобы составлять приложения.

Стандартные типы

Перед тем, как осуществлять объявление переменной, стоит изучить стандартные их типы. От этого будет зависеть, какой именно «вид» информации хранит в себе именованная ячейка памяти устройства.

Вот основные типы:

  • int – целое число;
  • float – неточный тип, который позволяет хранить целую и дробные части;
  • double – аналог предыдущего, но с большей точностью;
  • char – тип данных, отвечающий за запись символов;
  • bool – логический тип, который может быть true или false.

Это – база, с которой необходимо познакомиться всем программистам, независимо от того, какой язык выбран для коддинга.

Стандарты

ANSI C (C89)

В 1983 году Американский национальный институт стандартов (ANSI) сформировал комитет для разработки стандартной спецификации Си. По окончании этого долгого и сложного процесса в 1989 году он был наконец утверждён как «Язык программирования Си» ANSI X3.159-1989. Эту версию языка принято называть ANSI C или C89.

Одной из целей этого стандарта была разработка надмножества K&R C, включающего многие особенности языка, созданные позднее. Однако комитет по стандартизации также включил в него и несколько новых возможностей, таких, как прототипы функций (заимствованные из C++) и более сложный препроцессор.

ANSI C сейчас поддерживают почти все существующие компиляторы. Любая программа, написанная только на стандартном С, гарантированно будет правильно выполняться на любой платформе, имеющей соответствующую реализацию С.

C90

В 1990 году, стандарт ANSI C (с небольшими изменениями) был принят Международной организацией по стандартизации (ISO) как ISO/IEC 9899:1990. Эту версию иногда называют C90. Однако, термины C89 и C90 относятся в сущности к одному языку.

C99

После стандартизации в ANSI спецификация языка C оставалась относительно неизменной в течение долгого времени, в то время как C++ продолжал развиваться. Однако в конце 1990-х годов стандарт подвергся пересмотру, что привело к публикации ISO 9899:1999 в 1999 году. Этот стандарт обычно называют «C99». В марте 2000 года он был принят и адаптирован ANSI.

C89 C99
    int i;
 
    for (i = ; i < 10; ++i) {
        printf("%d\n", i);
    }
    for (int i = ; i < 10; ++i) {
        printf("%d\n", i);
    }

Некоторые новые особенности C99:

  • подставляемые функции (inline);
  • объявление локальных переменных в любом операторе программного текста (как в C++);
  • новые типы данных, такие, как long long int (для облегчения перехода от 32- к 64-битным числам), явный булевый тип данных _Bool и тип complex для представления комплексных чисел;
  • массивы переменной длины;
  • поддержка ограниченных указателей (restrict);
  • именованная инициализация структур: struct { int x, y, z; } point = { .y=10, .z=20, .x=30 };
  • поддержка однострочных комментариев, начинающихся на //, заимствованных из C++;
  • несколько новых библиотечных функций, таких, как snprintf;
  • несколько новых заголовочных файлов, таких, как stdint.h.

C11

8 декабря 2011 опубликован новый стандарт для языка С (ISO/IEC 9899:2011). Основные изменения:

  • поддержка многопоточности;
  • улучшенная поддержка Юникода;
  • обобщенные макросы (type-generic expressions, позволяют статичную перегрузку);
  • анонимные структуры и объединения (упрощают обращение ко вложенным конструкциям);
  • управление выравниванием объектов;
  • статичные утверждения (static assertions);
  • удаление опасной функции gets (в пользу безопасной gets_s);
  • функция quick_exit;
  • спецификатор функции _Noreturn;
  • новый режим эксклюзивного открытия файла.

Скачать

Конспект распространяется свободно в формате PDF.
Для просмотра требуется бесплатный просмотрщик
Acrobat Reader.
Конспект курса условно разбит на 4 части:

  1. Введение в программирование на языке Си (860 Кб)
    29.03.2014

    Изучение основных конструкций языка и приемов написания программ.

  2. Xранение и обработка данных (792 Кб)
    21.11.2013

    Язык Си: массивы, матрицы, структуры, символьные строки, структуры, рекурсия.

  3. Разработка программ на языке Си (937 Кб)
    01.03.2014

    Приемы проектирования программ,
    структурное программирование, целочисленные алгоритмы, численные методы,
    моделирование.

  4. Динамические структуры данных в языке Си (666 Кб)
    11.06.2009

    Списки, стеки, деревья, графы.

До C++ был C

Язык C был разработан в 1972 году Деннисом Ричи в лабораториях Bell Telephone, прежде всего как язык системного программирования (язык для написания операционных систем). Основными целями Ричи было создание минималистичного языка, который легко компилируется, обеспечивает эффективный доступ к памяти, создает эффективный код и является автономным (не зависит от других программ). Он был разработан, как язык высокого уровня, чтобы дать программисту большой контроль, в то же время поощряя независимость от платформы (аппаратного обеспечения и операционной системы) (то есть не нужно было переписывать код для каждой платформы).

C оказался настолько эффективным и гибким, что в 1973 году Ричи и Кен Томпсон переписали на нем большую часть операционной системы Unix. Многие предыдущие операционные системы были написаны на ассемблере. В отличие от ассемблера, на котором создаются программы, которые могут работать только на определенных процессорах, C обладал отличной портируемостью, что позволило легко перекомпилировать Unix на множестве разных типов компьютеров и ускорило его внедрение. С и Unix были связаны судьбой, и популярность С была частично связана с успехом Unix как операционной системы.

В 1978 году Брайан Керниган и Деннис Ричи опубликовали книгу под названием «Язык программирования Си». Эта книга, широко известная как K&R (по фамилиям авторов), содержала неофициальную спецификацию языка и стала стандартом де-факто. Когда требовалась максимальная портируемость, программисты придерживались рекомендаций K&R, потому что большинство компиляторов в то время были реализованы по стандартам данной книги.

В 1983 году Американский национальный институт стандартов (ANSI) сформировал комитет, чтобы утвердить для C официальный стандарт. В 1989 (комитеты постоянно что-то делают) они закончили и выпустили стандарт C89, более известный как ANSI C. 1990 Международная организация по стандартизации (ISO) приняла ANSI C (с небольшими изменениями). Эта версия C стала известна как C90. В конечном итоге компиляторы стали совместимыми с ANSI C/C90, и программы, для которых требовалась максимальная портируемость, писались в соответствии с этим стандартом.

В 1999 году комитет ANSI выпустил новую версию языка C под названием C99. C99 принял многие функции, которые уже входили в компиляторы в качестве расширений или были реализованы на C++.

Основы синтаксиса C++

Программа состоит из инструкций. Инструкция (statement) выполняет какое-то действие. После инструкции в C++ ставится знак «;».

Например:

std::cout << "мой текст"; 

Несколько инструкций, заключенных в фигурные скобки, составляют блок кода:

{                          

    std::cout << "мой текст";    

    std::cout << "еще текст";                       

}

Здесь cout — это стандартный выходной поток. В C++ нет готовых средств ввода-вывода, для этого используют объектно-ориентированную библиотеку iostream.

Чтобы компилятор подключил библиотеку, требуется директива:

#include <iostream> 

Iostream определяет три стандартных потока:

  • cin — входной поток (stdin в C);
  • cout — выходной поток (stdout в C);
  • cerr — поток вывода сообщений об ошибках (stderr в C).

Они находятся в пространстве имен (namespace) std. Чтобы использовать их без префикса std::, можно предварительно применить инструкцию: 

using namespace std;

Для ввода-вывода переопределены две операции:

  • >> — получить из входного потока;
  • << — поместить в выходной поток.

Вывод на консоль выглядит так:

using namespace std;
cout << значение;                        

Значение — это данные определенного типа. Тип данных определяет, какие операции с ними можно производить и сколько байт в памяти они занимают. 

Основные типы данных в C++:

  • int — целочисленный тип данных;
  • float — тип данных с плавающей запятой;
  • double — тип данных с плавающей запятой двойной точности;
  • char — символьный тип данных;
  • bool — логический тип данных

Попробуем написать «Hello, world!». Программа на C++ обязательно включает функцию main. С нее начинает работу программа. Тело функции — это блок кода. После имени в круглых скобках следует список параметров. Если параметры не нужны, скобки пустые. Функция возвращает значение определенного типа. 

Так выглядит заголовок функции main без параметров, возвращающей целое число:

int main()

В конце тела функции нужен оператор return и возвращаемое значение. Обычно 0 — признак успешного завершения. 

 return 0;         

Так выглядит программа вывода сообщения «Hello, world!»:

#include <iostream>              
using namespace std;
int main()                          
{                          
    cout << "Hello world";    
    return 0;                      
} 

Оцените статью