Этот раздел является переводом туториала C++ Language
Необходимыми инструментами для изучения этого руководства являются наличие компьютера и компилятора с набором инструментов, способных компилировать код C++, и строить программы для запуска на этом компьютере.
C++ - это язык, который значительно эволюционировал за последние годы, и это руководство описывает многие возможности, недавно добавленные в язык. Поэтому для следования руководству необходима последняя версия компилятора. Он должен поддерживать( хотя бы частично) возможности, введенные в 2011 стандарте.
Различные поставщики компиляторов поддерживают поддерживают новые возможности в разной мере. В конце раздела приведены некоторые компиляторы, которые поддерживают необходимые возможности. Некоторые из них являются свободными!
Если по некоторой причине Вам необходимо использовать старый компилятор, Вы можете пользоваться старой версией этого руководства здесь (больше не обновляется).
Что такое компилятор?
Компьютеры понимают только один язык состоит из набора инструкций, состоящих из нулей и единиц. Этот язык называется машинным языком.
Единичная инструкция компьютера может выглядеть так:
00000 | 10011110 |
Программа на машинном языке, которая позволяет пользователю ввести два числа, сложить их и отобразить результат, может содержать следующие инструкции машинного кода:
00000 | 10011110 |
00001 | 11110100 |
00010 | 10011110 |
00011 | 11010100 |
00100 | 10111111 |
00101 | 00000000 |
Как Вы можете представить, программирование непосредственно на машинном языке с использованием только нулей и единиц очень утомительно, к тому же существует большая вероятность ошибиться. Чтобы сделать программирование проще, были разработаны высокоуровневые языки, которые также упрощают проверку и понимание программ.
Это часть кода, написанного на C++, которая выполняет такую же функцию:
int a, b, sum;
cin >> a;
cin >> b;
sum = a + b;
cout << sum << endl;
Даже если Вы не поняли код выше, то могли оценить, насколько проще программирование на C++ в сравнении с машинным языком.
По той причине, что компьютер может понимать только машинный язык, а люди хотят писать программы на языках высокого уровня, код на языке программирования высокого уровня должен быть переписан( транслирован) в машинный язык. Это делается специальными программами, называемыми компиляторами, интерпретаторами и ассемблерами, которые встроены в различные программные средства.
C++ разработан как компилируемый язык. Это означает, что он обычно транслируется в машинный язык, который непосредственно понимается системой, что делает программу высокоэффективной. Для этого необходим набор инструментов, ядром которого являются компилятор и компоновщик.
Консольные программы
Консольные программы - это программы, которые используют текст для общения с пользователем и окружением, таким как вывод текста на экран или чтение ввода с клавиатуры.
С консольными программами легко взаимодействовать и они обычно имеют предсказуемое поведение, которое идентично на всех платформах. Они также просты в написании и поэтому очень полезны для изучения основ программирования. Все примеры руководства являются консольными программами.
Способ компиляции консольной программы зависит от конкретных используемых инструментов.
Простейший путь для новичков для компиляции программы на C++ - это использование интегрированной среды разработки - IDE (Integrated Development Environment). IDE обычно сочетает несколько инструментов, включая текстовый редактор и инструменты для компиляции программы непосредственно из нее.
Далее изложены инструкции по компиляции и запуску консольных программ с использованием различных IDE:
IDE | Платформа | Инструкция |
---|---|---|
Code::blocks | Windows/Linux/MacOS | Compile console programs using Code::blocks |
Visual Studio Community | Windows | Microsoft Visual Studio Community official page |
Dev-C++ | Windows | Compile console programs using Dev-C++ |
Если Вы имеете дело с Linux или MAC, Вы должны быть способны компилировать некоторые примеры прямо из терминала с использованием флагов C++11 в командной строке компилятора:
Компилятор | Платформа | Команда |
---|---|---|
GCC | Linux | g++ -std=c++0x example.cpp -o example_program |
Clang | OS X | clang++ -std=c++11 -stdlib=libc++ example.cpp -o example_program |