Понимание C++: базовый синтаксис и основы ООП
Программу на C++ можно рассматривать как набор объектов, общающихся через вызов методов друг друга. Рассмотрим основные понятия: класс, объект, методы и переменные экземпляра.
Объект — имеет состояние и поведение. Пример: у собаки есть состояние (цвет, имя, порода) и поведение (вилять хвостом, лаять, есть). Объект — это экземпляр класса.
Класс — шаблон/чертеж, описывающий состояния и поведение, которые поддерживают объекты этого типа.
Методы — это поведение. Класс может содержать много методов. В методах пишется логика, манипулируются данными, выполняются действия.
Переменные экземпляра — у каждого объекта свой уникальный набор таких переменных. Состояние объекта создаётся значениями, присвоенными этим переменным.
Структура программы на C++
Разберём простой код, выводящий Hello World.
Live Demo#include <iostream>
using namespace std;
// main() — точка входа программы
int main() {
cout << "Hello World"; // выводит Hello World
return 0;
}
Разбор частей программы:
Язык C++ определяет несколько заголовочных файлов, содержащих необходимую или полезную информацию. Для этой программы нужен <iostream>.
Строка using namespace std; указывает компилятору использовать пространство имён
std. Пространства имён — относительно недавнее дополнение к C++.Следующая строка // main() — точка входа программы — однострочный комментарий. В C++ они начинаются с
//и длятся до конца строки.Строка int main() — главная функция, с которой начинается выполнение.
Строка cout << "Hello World"; выводит сообщение на экран.
Строка return 0; завершает функцию
main()и возвращает значение 0 вызывающему процессу.
Компиляция и запуск программы на C++
Сохранение, компиляция и запуск:
Откройте текстовый редактор и вставьте код выше.
Сохраните файл как
hello.cpp.Откройте командную строку и перейдите в каталог с файлом.
Введите
g++ hello.cppи нажмите Enter для компиляции. Если ошибок нет, появится исполняемый файлa.out(в Windows —a.exe).Введите
./a.out(илиa.exe) для запуска.На экране появится
Hello World.
$ g++ hello.cpp $ ./a.out Hello World
Убедитесь, что g++ в PATH и вы находитесь в каталоге с hello.cpp.
Можно компилировать с помощью makefile. Подробнее — в руководстве по Makefile.
Точки с запятой и блоки в C++
В C++ точка с запятой — терминатор оператора. Каждый отдельный оператор должен заканчиваться точкой с запятой. Она обозначает конец одной логической единицы.
Пример трёх разных операторов:
x = y; y = y + 1; add(x, y);
Блок — набор логически связанных операторов, заключённых в фигурные скобки. Например:
{
cout << "Hello World"; // выводит Hello World
return 0;
}
C++ не считает конец строки терминатором. Поэтому неважно, где в строке стоит оператор. Например:
x = y; y = y + 1; add(x, y);
эквивалентно
x = y; y = y + 1; add(x, y);
Идентификаторы в C++
Идентификатор — имя для переменной, функции, класса, модуля или другого пользовательского элемента. Начинается с буквы (A–Z, a–z) или подчёркивания (_), затем могут следовать буквы, подчёркивания и цифры (0–9).
C++ не допускает знаков пунктуации (@, $, %) в идентификаторах. Язык чувствителен к регистру: Manpower и manpower — разные идентификаторы.
Примеры допустимых идентификаторов:
mohd zara abc move_name a_123 myname50 _temp j a23b9 retVal
Ключевые слова 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 |
Триграфы
Некоторые символы имеют альтернативное представление — триграфную последовательность. Триграф — это трёхсимвольная последовательность, представляющая один символ, всегда начинающаяся с двух вопросительных знаков.
Триграфы раскрываются везде: в строковых и символьных литералах, в комментариях, в директивах препроцессора.
Часто используемые триграфы:
| Триграф | Замена |
|---|---|
| ??= | # |
| ??/ | \ |
| ??' | ^ |
| ??( | [ |
| ??) | ] |
| ??! | | |
| ??< | { |
| ??> | } |
| ??- | ~ |
Не все компиляторы поддерживают триграфы, и их использование не рекомендуется из-за путаницы.
Пробелы в C++
Строка, содержащая только пробелы (возможно, с комментарием), называется пустой строкой — компилятор её игнорирует.
Пробелы — это пробелы, табы, символы новой строки и комментарии. Они разделяют части оператора, позволяя компилятору отличить, где заканчивается один элемент (например, int) и начинается следующий.
Оператор 1
int age;
Между int и age должен быть хотя бы один пробельный символ (обычно пробел), чтобы компилятор мог их различить.
Оператор 2
fruit = apples + oranges; // Получить общее количество фруктов
Здесь пробелы между fruit и =, или между = и apples не обязательны, но можно добавить для читаемости.
Язык C
- Освоение ввода и вывода в C++: практическое руководство
- Освоение операторов C++: полное руководство с практическими примерами
- Комментарии в C++: лучшие практики для читаемого и поддерживаемого кода
- Потоки в C++: cout, cin, cerr, clog — практическое руководство
- Основы Java: базовый синтаксис, классы, объекты и методы
- Базовый синтаксис C: токены, идентификаторы, ключевые слова и пробелы
- Язык программирования C++: обзор и ключевые особенности
- Освоение комментариев в C++: лучшие практики и синтаксис
- Константы и литералы в C++: типы, синтаксис и лучшие практики
- Полное руководство по операторам C++: типы, использование и лучшие практики