C++#
Справочник по API VEX IQ (1-го поколения) для C++ объясняет классы, объекты, конструкторы, функции-члены и переменные, используемые в проектах VEXcode на C++.
Используйте этот справочник, если хотите понять, как создается устройство или функция, проверить, какую сигнатуру функции использовать, или сравнить связанные функции-члены класса.
В проектах VEXcode IQ C++ используются команды C++. Страницы, посвященные C++, организованы иначе, чем страницы, посвященные блокам, поскольку многие команды относятся к одному классу. На странице может сначала объясняться класс и как создать объект, а затем перечисляться функции-члены, которые можно вызвать для этого объекта.
Как читать страницу класса C++#
Страница класса C++ обычно располагается в следующем порядке:
Введение — Объясняет, что представляет собой данный класс и когда он полезен.
Производные классы — Отображает все классы, основанные на этом классе, если таковые имеются.
Конструктор или конструкторы класса — отображает синтаксис, используемый для создания объекта из класса.
Деструктор класса — Отображает синтаксис, используемый для уничтожения объекта и освобождения его ресурсов, если таковые имеются.
Параметры — поясняет параметры конструктора, используемые при создании объекта.
Пример — демонстрирует, как создать объект в коде.
Функции-члены — Список функций, принадлежащих классу, часто сгруппированных по назначению.
Описание функций — поясняет каждую функцию-член класса, включая доступные функции, параметры, возвращаемые значения, примечания и примеры.
Не на каждой странице представлены все разделы. Например, на некоторых страницах отсутствуют производные классы, а некоторые функции не имеют параметров или возвращаемых значений.
Общие элементы API C++#
Элемент |
Что это значит |
|---|---|
Сорт |
Тип C++ для устройства или функции, например, |
Объект |
Именованный экземпляр, созданный из класса, например, |
Конструктор |
Код, используемый для создания объекта из класса. |
Функции для участников |
Команда, вызываемая для объекта, например, |
Доступная функция |
Для функции-члена можно использовать одну точную сигнатуру функции. Некоторые функции-члены имеют более одной доступной функции. |
Параметр |
Значение, передаваемое в конструктор или функцию для управления её работой. |
Возвращаемая стоимость |
Значение, возвращаемое функцией, например, |
Базовый словарь C++#
Срок |
Что это значит |
|---|---|
Переменная |
Имя, хранящее значение, например, |
Тип |
Тип данных, которые что-либо хранит, например, |
Нить |
Текст внутри кавычек, например |
инт |
Положительное или отрицательное целое число, например |
двойной |
Числовой тип, который может содержать десятичную дробь, например, |
логическое значение |
Значение, равное либо |
Аргумент |
Значение, передаваемое в функцию-член или при вызове функции, например, |
Конструкторы и объекты#
Перед использованием функций-членов многих классов C++ необходимо наличие объекта. Конструктор показывает, как создать этот объект.
Например, объект Bumper Switch можно создать, указав в конструкторе Smart Port, к которому подключен датчик:
bumper Bumper1 = bumper(PORT1);
После создания объекта можно вызывать его функции-члены:
Bumper1.pressing();
В VEXcode конфигурация устройства часто генерируется автоматически через меню «Устройство». В VS Code конструкторы, возможно, потребуется писать вручную.
Выбор подходящей доступной функции#
Некоторые функции-члены имеют более одной доступной функции. Каждая функция использует свой набор параметров, поэтому выберите ту, которая соответствует значениям, необходимым для вашего проекта.
Например, функция трансмиссии может иметь одну версию, использующую текущую скорость, и другую версию, позволяющую проекту выбирать скорость самостоятельно:
void drive(directionType dir);
void drive(directionType dir, double velocity, velocityUnits units);
В обеих версиях используется привод drive, но вторая версия обеспечивает больший контроль, поскольку включает параметры скорости.
Пример ввода функции#
водить машину#
Привод drive перемещает робота вперед или назад бесконечно. Робот будет продолжать движение, пока ему не будет дано другое действие, например, поворот или остановка.
Доступные функции
void drive(directionType dir);
void drive(directionType dir, double velocity, velocityUnits units);
Параметр |
Тип |
Описание |
|---|---|---|
|
|
Направление движения робота: |
|
|
Скорость вращения от 0% до 100% при использовании |
|
|
Единица измерения скорости: |
Возвращаемая стоимость
Эта функция не возвращает значения.
Примечания
driveне ожидает. Проект немедленно выполнит следующую строку кода.Робот будет продолжать движение до тех пор, пока не будет вызвана команда
stopили не запустится другая функция перемещения трансмиссии.isDoneиisMovingне используются сdrive, потому чтоdriveне имеет целевого расстояния.
Пример
// Drive forward and back.
myDrivetrain.drive(forward);
wait(2, seconds);
myDrivetrain.drive(reverse, 25, rpm);
wait(2, seconds);
myDrivetrain.stop();
Поведение в период ожидания и без ожидания#
Некоторые функции перемещения в C++ ждут завершения действия, прежде чем проект перейдет к следующей строке кода. Другие функции запускают действие и позволяют следующей строке выполниться немедленно.
Ожидание — Проект ожидает завершения выполнения функции.
Без ожидания — Проект запускает функцию и немедленно переходит к следующей строке.
Некоторые функции включают параметр, например, waitForCompletion позволяющий выбрать это поведение. Для таких функций значение true обычно заставляет проект ждать, а false позволяет следующей строке выполниться немедленно.
Команды в подразделах#
Команды C++ организованы по устройствам или темам. Например, команды для устройств Brain, Controller, Drivetrain, Events, Motion, Smart Port, Threads и Logic сгруппированы в отдельные подразделы.