C++ Базовый синтаксис
Программу на C++ можно определить как совокупность объектов, которые взаимодействуют, вызывая методы друг друга. Теперь давайте кратко рассмотрим, что такое классы, объекты, методы и переменные экземпляра.
- Объект -Объекты обладают состоянием и поведением. Например: состояние собаки - цвет, имя, порода; поведение - виляние хвостом, лай, поедание. Объект является экземпляром класса.
- Класс -Класс можно определить как шаблон/чертёж, описывающий поведение/состояние объекта.
- Метод -По сути, метод представляет поведение. Класс может содержать несколько методов. Вы можете писать логику, управлять данными и выполнять все действия в методах.
- Переменная экземпляра -Каждый объект имеет собственные уникальные переменные экземпляра. Состояние объекта создаётся значениями этих переменных экземпляра.
Структура программы на C++
Давайте посмотрим на простой фрагмент кода, который может вывести словоHello World。
Пример
Далее мы объясним вышеприведённую программу:
- Язык C++ определяет некоторые заголовочные файлы, которые содержат информацию, необходимую или полезную в программе. В вышеприведённой программе включается заголовочный файл<iostream>。
- Следующая строкаusing namespace std;Сообщает компилятору использовать пространство имён std. Пространство имён — относительно новая концепция в C++.
- Следующая строка// main() is where the program starts executingЭто однострочный комментарий. Однострочный комментарий начинается с // и заканчивается в конце строки.
- Следующая строкаint main()Это главная функция, с которой начинается выполнение программы.
- Следующая строкаcout << "Hello World";Выведет сообщение "Hello World" на экран.
- Следующая строкаreturn 0;Завершает функцию main() и возвращает значение 0 вызывающему процессу.
Компиляция и выполнение программы на C++
Теперь давайте посмотрим, как сохранить исходный код в файл и как его скомпилировать и запустить. Вот простые шаги:
- Откройте текстовый редактор и добавьте приведённый выше код.
- Сохраните файл как hello.cpp.
- Откройте командную строку и перейдите в каталог, где сохранён файл.
- Введите 'g++ hello.cpp', нажмите Enter и скомпилируйте код. Если в коде нет ошибок, командная строка перейдёт на следующую строку и создаст исполняемый файл a.out.
- Теперь введите ' a.out', чтобы запустить программу.
- Вы увидите 'Hello World' на экране.
$ g++ hello.cpp $ ./a.out Hello World
Убедитесь, что компилятор g++ включён в ваш PATH, и убедитесь, что вы запускаете его в каталоге, содержащем исходный файл hello.cpp.
Вы также можете использовать makefile для компиляции программ на C/C++.
Точки с запятой и блоки операторов в C++
В C++ точка с запятой является терминатором оператора. То есть каждый оператор должен заканчиваться точкой с запятой. Она обозначает конец логической сущности.
Например, следующие три оператора являются разными:
Блок операторов — это группа логически связанных операторов, заключённая в фигурные скобки. Например:
C++ не использует конец строки в качестве терминатора, поэтому можно размещать несколько операторов в одной строке. Например:
Эквивалентно
Идентификаторы в C++
Идентификатор C++ — это имя, используемое для идентификации переменной, функции, класса, модуля или любого другого элемента, определяемого пользователем. Идентификатор начинается с буквы A-Z или a-z, или символа подчёркивания _, за которым следует ноль или более букв, символов подчёркивания и цифр (0-9).
Символы пунктуации, такие как @, & и %, не допускаются в идентификаторах C++. C++ — регистрозависимый язык программирования. Следовательно, в C++Manpowerиmanpower— это два разных идентификатора.
Ниже приведены несколько допустимых идентификаторов:
mohd zara abc move_name a_123 myname50 _temp j a23b9 retVal
Ключевые слова C++
В следующей таблице перечислены зарезервированные слова в C++. Эти зарезервированные слова нельзя использовать в качестве имён констант, имён переменных или других имён идентификаторов.
| asm | else | новый | this |
| auto | enum | operator | throw |
| bool | explicit | private | истина |
| break | export | protected | try |
| case | extern | public | typedef |
| catch | false | регистр | typeid |
| char | float | reinterpret_cast | typename |
| класс | for | return | объединение |
| const | friend | short | unsigned |
| const_cast | goto | signed | using |
| continue | if | sizeof | virtual |
| default | inline | static | void |
| удаление | int | static_cast | volatile |
| do | long | struct | wchar_t |
| double | mutable | switch | while |
| dynamic_cast | namespace | template |
Для полного ознакомления с ключевыми словами обратитесь к:Полное введение в ключевые слова C++ (зарезервированные слова)
Триграфы
Триграф — это последовательность из трёх символов, используемая для представления другого символа, также называемая триграфной последовательностью. Триграфная последовательность всегда начинается с двух вопросительных знаков.
Триграфные последовательности не очень распространены, но стандарт C++ позволяет задавать определённые символы в виде триграфных последовательностей. В прошлом это был необходимый способ представления символов, недоступных на клавиатуре.
Триграфные последовательности могут появляться где угодно, включая строки, последовательности символов, комментарии и директивы препроцессора.
Ниже перечислены наиболее часто используемые триграфные последовательности:
| Триграфы | замена |
|---|---|
| ??= | # |
| ??/ | \ |
| ??' | ^ |
| ??( | [ |
| ??) | ] |
| ??! | | |
| ??< | { |
| ??> | } |
| ??- | ~ |
Если вы хотите, чтобы в исходной программе было два идущих подряд вопросительных знака и вы не хотите, чтобы они заменялись препроцессором, такая ситуация возникает в символьных константах, строковых литералах или комментариях программы. Альтернативой является использование автоматической конкатенации строк: "...?""?..." или escape-последовательности: "...?\?...".
Начиная с Microsoft Visual C++ 2010, компилятор больше не заменяет триграфы по умолчанию. Если вам нужно использовать замену триграфов (например, для совместимости со старым программным кодом), необходимо задать параметр командной строки компилятора /Zc:trigraphs.
g++ по-прежнему поддерживает триграфы по умолчанию, но выдаёт предупреждение при компиляции.
Пробелы в C++
Строка, содержащая только пробелы, возможно, с комментарием, называется пустой строкой; компилятор C++ полностью её игнорирует.
В C++ пробельные символы используются для обозначения пробелов, табуляций, символов новой строки и комментариев. Пробельные символы разделяют части инструкции, позволяя компилятору распознавать, где заканчивается один элемент инструкции (например, int) и где начинается следующий элемент. Поэтому в следующей инструкции:
int age;
Здесь между int и age должен быть хотя бы один пробельный символ (обычно пробел), чтобы компилятор мог их различить. С другой стороны, в следующей инструкции:
fruit = apples + oranges; // 获取水果的总数
Пробельные символы между fruit и = или между = и apples не обязательны, но для лучшей читаемости можно при необходимости добавить несколько пробелов.
Другие расширения